The GSL physical constants are defined as Ruby constants under the modules
GSL::CONST::MKSA (MKSA unit)GSL::CONST:CGSM (CGSM unit)GSL::CONST:NUM (Dimension-less constants)For example, the GSL C constant
GSL_CONST_MKSA_SPEED_OF_LIGHT is represented by a Ruby constant,
GSL_CONST_MKSA_SPEED_OF_LIGHT ---> GSL::CONST::MKSA::SPEED_OF_LIGHT
The following lists a part of the constants. Most of the constants are
defined both in the modules GSL::CONST::MKSA and GSL::CONST::CGSM.
See also the GSL reference
GSL::CONST::MKSA::SPEED_OF_LIGHTGSL::CONST::MKSA::VACUUM_PERMEABILITYGSL::CONST::MKSA::VACUUM_PERMITTIVITYGSL::CONST::MKSA::PLANCKS_CONSTANT_HGSL::CONST::MKSA::PLANCKS_CONSTANT_HBARGSL::CONST::NUM::AVOGADROGSL::CONST::MKSA::FARADAYGSL::CONST::MKSA::BOLTZMANNGSL::CONST::MKSA::STEFAN_BOLTZMANN_CONSTANTGSL::CONST::MKSA::MOLAR_GASGSL::CONST::MKSA::STANDARD_GAS_VOLUMEGSL::CONST::MKSA::GAUSSGSL::CONST::MKSA::ASTRONOMICAL_UNITGSL::CONST::MKSA::GRAVITATIONAL_CONSTANTGSL::CONST::MKSA::LIGHT_YEARGSL::CONST::MKSA::PARSECGSL::CONST::MKSA::GRAV_ACCELGSL::CONST::MKSA::SOLAR_MASSGSL::CONST::MKSA::ELECTRON_CHARGEGSL::CONST::CGSM::ELECTRON_CHARGE_ESUGSL::CONST::MKSA::ELECTRON_VOLTGSL::CONST::MKSA::UNIFIED_ATOMIC_MASSGSL::CONST::MKSA::MASS_ELECTRONGSL::CONST::MKSA::MASS_MUONGSL::CONST::MKSA::MASS_PROTONGSL::CONST::MKSA::MASS_NEUTRONGSL::CONST::NUM::FINE_STRUCTUREGSL::CONST::MKSA::RYDBERGGSL::CONST::MKSA::THOMSON_CROSS_SECTIONGSL::CONST::MKSA::BOHR_RADIUSGSL::CONST::MKSA::ANGSTROMGSL::CONST::MKSA::BARNGSL::CONST::MKSA::BOHR_MAGNETONGSL::CONST::MKSA::NUCLEAR_MAGNETONGSL::CONST::MKSA::ELECTRON_MAGNETIC_MOMENTGSL::CONST::MKSA::PROTON_MAGNETIC_MOMENTGSL::CONST::MKSA::MINUTEGSL::CONST::MKSA::HOURGSL::CONST::MKSA::DAYGSL::CONST::MKSA::WEEKGSL::CONST::MKSA::INCHGSL::CONST::MKSA::FOOTGSL::CONST::MKSA::YARDGSL::CONST::MKSA::MILEGSL::CONST::MKSA::MILGSL::CONST::MKSA::NAUTICAL_MILEGSL::CONST::MKSA::FATHOMGSL::CONST::MKSA::KNOTGSL::CONST::MKSA::POINTGSL::CONST::MKSA::TEXPOINTGSL::CONST::MKSA::ACREGSL::CONST::MKSA::LITERGSL::CONST::MKSA::US_GALLONGSL::CONST::MKSA::CANADIAN_GALLONGSL::CONST::MKSA::UK_GALLONGSL::CONST::MKSA::QUARTGSL::CONST::MKSA::PINTGSL::CONST::MKSA::POUND_MASSGSL::CONST::MKSA::OUNCE_MASSGSL::CONST::MKSA::TONGSL::CONST::MKSA::METRIC_TONGSL::CONST::MKSA::UK_TONGSL::CONST::MKSA::TROY_OUNCEGSL::CONST::MKSA::CARATGSL::CONST::MKSA::GRAM_FORCEGSL::CONST::MKSA::POUND_FORCEGSL::CONST::MKSA::KILOPOUND_FORCEGSL::CONST::MKSA::POUNDALGSL::CONST::MKSA::CALORIEGSL::CONST::MKSA::BTUGSL::CONST::MKSA::THERMGSL::CONST::MKSA::HORSEPOWERGSL::CONST::MKSA::BARGSL::CONST::MKSA::STD_ATMOSPHEREGSL::CONST::MKSA::TORRGSL::CONST::MKSA::METER_OF_MERCURYGSL::CONST::MKSA::INCH_OF_MERCURYGSL::CONST::MKSA::INCH_OF_WATERGSL::CONST::MKSA::PSIGSL::CONST::MKSA::POISEGSL::CONST::MKSA::STOKESGSL::CONST::MKSA::STILBGSL::CONST::MKSA::LUMENGSL::CONST::MKSA::LUXGSL::CONST::MKSA::PHOTGSL::CONST::MKSA::FOOTCANDLEGSL::CONST::MKSA::LAMBERTGSL::CONST::MKSA::FOOTLAMBERTGSL::CONST::MKSA::CURIEGSL::CONST::MKSA::ROENTGENGSL::CONST::MKSA::RADGSL::CONST::MKSA::NEWTONGSL::CONST::MKSA::DYNEGSL::CONST::MKSA::JOULEGSL::CONST::MKSA::ERGGSL::CONST::NUM::YOTTAGSL::CONST::NUM::ZETTAGSL::CONST::NUM::EXAGSL::CONST::NUM::PETAGSL::CONST::NUM::TERAGSL::CONST::NUM::GIGAGSL::CONST::NUM::MEGAGSL::CONST::NUM::KILOGSL::CONST::NUM::MILLIGSL::CONST::NUM::MICROGSL::CONST::NUM::NANOGSL::CONST::NUM::PICOGSL::CONST::NUM::FEMTOGSL::CONST::NUM::ATTOGSL::CONST::NUM::ZEPTOGSL::CONST::NUM::YOCTOThe following program demonstrates the use of the physical constants in a calculation. In this case, the goal is to calculate the range of light-travel times from Earth to Mars.
require("gsl")
include GSL::CONST::MKSA
puts("In MKSA unit")
c = SPEED_OF_LIGHT;
au = ASTRONOMICAL_UNIT;
minutes = MINUTE;
# distance stored in meters
r_earth = 1.00 * au;
r_mars = 1.52 * au;
t_min = (r_mars - r_earth) / c;
t_max = (r_mars + r_earth) / c;
printf("light travel time from Earth to Mars:\n");
printf("c = %e [m/s]\n", c)
printf("AU = %e [m]\n", au)
printf("minutes = %e [s]\n", minutes)
printf("minimum = %.1f minutes\n", t_min / minutes);
printf("maximum = %.1f minutes\n\n", t_max / minutes);