crow

Utility library


Project maintained by CaptainCrowbar Hosted on GitHub Pages — Theme by mattgraham

Formula Functions

Crow Library by Ross Smith

#include "crow/formula.hpp"
namespace Crow;

A collection of useful formulae, mostly astronomical. SI units are assumed for all dimensioned quantities except stellar magnitude.

Contents

Surface area and volume of a sphere

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;

Mass and density

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;

Surface gravity

template <std::floating_point T>
    constexpr T gravity_from_mass_radius(T mass, T radius) noexcept;

Orbital period

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;

Hill sphere

template <std::floating_point T>
    T hill_radius(T primary_mass, T secondary_mass, T distance) noexcept;

Stellar luminosity

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;

Main sequence lifetime

template <std::floating_point T>
    constexpr T main_sequence_lifetime(T mass, T luminosity) noexcept;

Schwarzschild radius

template <std::floating_point T>
    constexpr T schwarzschild_radius(T mass) noexcept;

Magnitude and luminosity

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;

Bolometric correction

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;

Planet temperature and illumination

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;