Utility library
#include "crow/formula.hpp"
namespace Crow;
A collection of useful formulae, mostly astronomical. SI units are assumed for all dimensioned quantities except stellar magnitude.
template <std::floating_point T>
constexpr T sphere_area_from_radius(T radius) noexcept;
template <std::floating_point T>
T sphere_radius_from_area(T area) noexcept;
template <std::floating_point T>
T sphere_volume_from_radius(T radius) noexcept;
template <std::floating_point T>
T sphere_radius_from_volume(T volume) noexcept;
template <std::floating_point T>
T mass_from_radius_density(T radius, T density) noexcept;
template <std::floating_point T>
T radius_from_mass_density(T mass, T density) noexcept;
template <std::floating_point T>
T density_from_mass_radius(T mass, T radius) noexcept;
template <std::floating_point T>
constexpr T gravity_from_mass_radius(T mass, T radius) noexcept;
template <std::floating_point T>
T distance_from_mass_period(T mass, T period) noexcept;
template <std::floating_point T>
T period_from_mass_distance(T mass, T distance) noexcept;
template <std::floating_point T>
T hill_radius(T primary_mass, T secondary_mass, T distance) noexcept;
template <std::floating_point T>
T luminosity_from_radius_temperature(T radius, T temperature) noexcept;
template <std::floating_point T>
T radius_from_luminosity_temperature(T luminosity, T temperature) noexcept;
template <std::floating_point T>
T temperature_from_luminosity_radius(T luminosity, T radius) noexcept;
template <std::floating_point T>
constexpr T main_sequence_lifetime(T mass, T luminosity) noexcept;
template <std::floating_point T>
constexpr T schwarzschild_radius(T mass) noexcept;
template <std::floating_point T>
T delta_magnitude_to_ratio(T delta_mag) noexcept;
template <std::floating_point T>
T ratio_to_delta_magnitude(T ratio) noexcept;
template <std::floating_point T>
T bolometric_magitude_to_luminosity(T mag) noexcept;
template <std::floating_point T>
T bolometric_luminosity_to_magnitude(T luminosity) noexcept;
Source: Guillermo Torres (2010), “On the Use of Empirical Bolometric Corrections for Stars”
template <std::floating_point T>
T temperature_to_bc(T temperature) noexcept;
template <std::floating_point T>
T planet_distance_to_temperature(T luminosity, T distance) noexcept;
template <std::floating_point T>
T planet_temperature_to_distance(T luminosity, T temperature) noexcept;
template <std::floating_point T>
T planet_distance_to_illumination(T luminosity, T distance) noexcept;
template <std::floating_point T>
T planet_illumination_to_temperature(T illumination) noexcept;