CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
phys::units::detail Namespace Reference

namespace detail. More...

Classes

struct  collapse
 The "collapse" template is used to avoid quantity< dimensions< 0, 0, 0 > >, i.e. More...
 
struct  collapse< dimensionless_d, T >
 
struct  magnitude_tag_t
 tag to construct a quantity from a magnitude. More...
 
struct  power
 power type generator. More...
 
struct  product
 product type generator. More...
 
struct  quotient
 quotient type generator. More...
 
struct  reciprocal
 reciprocal type generator. More...
 
struct  root
 root type generator. More...
 

Typedefs

template<typename D , typename T >
using Collapse = typename collapse< D, T >::type
 
template<typename X , typename Y >
using PromoteAdd = decltype(std::declval< X >()+std::declval< Y >())
 
template<typename X , typename Y >
using PromoteMul = decltype(std::declval< X >() *std::declval< Y >())
 
template<typename DX , typename DY >
using product_d = typename product< DX, DY, Rep >::dim
 convenience type for product dimension
 
template<typename DX , typename DY , typename X , typename Y >
using Product = typename product< DX, DY, PromoteMul< X, Y > >::type
 
template<typename DX , typename DY >
using quotient_d = typename quotient< DX, DY, Rep >::dim
 convenience type for quotient dimension
 
template<typename DX , typename DY , typename X , typename Y >
using Quotient = typename quotient< DX, DY, PromoteMul< X, Y > >::type
 
template<typename DX , typename DY >
using reciprocal_d = typename reciprocal< DX, Rep >::dim
 convenience type for reciprocal dimension
 
template<typename D , typename X , typename Y >
using Reciprocal = typename reciprocal< D, PromoteMul< X, Y > >::type
 
template<typename DX , int N>
using power_d = typename power< DX, N, Rep >::dim
 convenience type for power dimension
 
template<typename D , int N, typename T >
using Power = typename power< D, N, T >::type
 
template<typename D , int N>
using root_d = typename root< D, N, Rep >::dim
 convenience type for root dimension
 
template<typename D , int N, typename T >
using Root = typename detail::root< D, N, T >::type
 

Functions

template<typename T , size_t N>
constexpr size_t dimenson_of (T(&)[N])
 
int sign (int const value)
 
bool iszero (double const value)
 
long degree_of (double const value)
 
int precision (double const scaled, int const digits)
 
std::string prefix_or_exponent (bool const exponential, int const degree)
 
std::string exponent (int const degree)
 
std::string bracket (std::string const unit)
 

Variables

constexpr struct phys::units::detail::magnitude_tag_t magnitude_tag
 
char const *const prefixes [][2][9]
 
constexpr int prefix_count = dimenson_of( prefixes[false][false] )
 

Detailed Description

namespace detail.

Variable Documentation

◆ prefixes

char const* const phys::units::detail::prefixes[][2][9]
Initial value:
=
{
{
{ "", "m", ENG_FORMAT_MICRO_GLYPH
, "n", "p", "f", "a", "z", "y", },
{ "", "k", "M", "G", "T", "P", "E", "Z", "Y", },
},
{
{ "e0", "e-3", "e-6", "e-9", "e-12", "e-15", "e-18", "e-21", "e-24", },
{ "e0", "e3", "e6", "e9", "e12", "e15", "e18", "e21", "e24", },
},
}

Definition at line 52 of file quantity_io_engineering.hpp.