Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ratio(3)		      C++ Standard Libary		 std::ratio(3)

NAME
       std::ratio - std::ratio

Synopsis
	  Defined in header <ratio>
	  template<

	      std::intmax_t Num,       (since C++11)
	      std::intmax_t Denom = 1

	  > class ratio;

	  The  class template std::ratio provides compile-time rational	arith-
       metic support.
	  Each instantiation of	this template exactly  represents  any	finite
       rational	number as
	  long as its numerator	Num and	denominator Denom are representable as
       compile-time
	  constants  of	type std::intmax_t. In addition, Denom may not be zero
       and both	Num and
	  Denom	may not	be equal to the	most negative value.

	  The static data members num and den representing the	numerator  and
       denominator are
	  calculated  by dividing Num and Denom	by their greatest common divi-
       sor. However, two
	  std::ratio with different Num	or Denom are distinct  types  even  if
       they represent the
	  same rational	number (after reduction). A std::ratio type can	be re-
       duced to	the
	  lowest terms via its type member: std::ratio<3, 6>::type is std::ra-
       tio<1, 2>.

	  The  following convenience typedefs that correspond to the SI	ratios
       are provided by
	  the standard library:

	  Defined in header <ratio>
	  Type		       Definition
	  quecto (since	C++26) std::ratio<1,  1000000000000000000000000000000>
       (10^-30)^[1]
	  ronto	 (since	 C++26)	  std::ratio<1,	 1000000000000000000000000000>
       (10^-27)^[1]
	  yocto			  std::ratio<1,	    1000000000000000000000000>
       (10^-24)^[1]
	  zepto			    std::ratio<1,      1000000000000000000000>
       (10^-21)^[1]
	  atto		       std::ratio<1, 1000000000000000000> (10^-18)
	  femto		       std::ratio<1, 1000000000000000>	  (10^-15)
	  pico		       std::ratio<1, 1000000000000>	  (10^-12)
	  nano		       std::ratio<1, 1000000000>	  (10^-9)
	  micro		       std::ratio<1, 1000000> (10^-6)
	  milli		       std::ratio<1, 1000>    (10^-3)
	  centi		       std::ratio<1, 100>     (10^-2)
	  deci		       std::ratio<1, 10>      (10^-1)
	  deca		       std::ratio<10, 1>      (10^1)
	  hecto		       std::ratio<100, 1>     (10^2)
	  kilo		       std::ratio<1000,	1>    (10^3)
	  mega		       std::ratio<1000000, 1> (10^6)
	  giga		       std::ratio<1000000000, 1>	  (10^9)
	  tera		       std::ratio<1000000000000, 1>	  (10^12)
	  peta		       std::ratio<1000000000000000, 1>	  (10^15)
	  exa		       std::ratio<1000000000000000000, 1> (10^18)
	  zetta			    std::ratio<1000000000000000000000,	    1>
       (10^21)^[2]
	  yotta			   std::ratio<1000000000000000000000000,    1>
       (10^24)^[2]
	  ronna	 (since	 C++26)	  std::ratio<1000000000000000000000000000,  1>
       (10^27)^[2]
	  quetta  (since C++26)	std::ratio<1000000000000000000000000000000, 1>
       (10^30)^[2]

	   1.  ^1.0  ^1.1  ^1.2	 ^1.3  These  typedefs	are  only  defined  if
       std::intmax_t can
	      represent	the denominator.
	   2.	^2.0  ^2.1  ^2.2  ^2.3	These  typedefs	 are  only  defined if
       std::intmax_t can
	      represent	the numerator.

Notes
	  Feature-test macro  Value    Std			  Feature
	  __cpp_lib_ratio    202306L (C++26) Adding the	new 2022 SI  prefixes:
       quecto, quetta,
					     ronto, ronna

Example
       // Run this code

	#include <ratio>

	static_assert
	(
	    std::ratio_equal_v<std::ratio_multiply<std::femto,	    std::exa>,
       std::kilo>
	);

	int main() {}

See also
	  Mathematical constants (C++20) provides  several  mathematical  con-
       stants, such as
					 std::numbers::e for e

http://cppreference.com		  2024.06.10			 std::ratio(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ratio&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help