You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//  ratio_fwd.hpp  ---------------------------------------------------------------//
 | 
						|
 | 
						|
//  Copyright 2008 Howard Hinnant
 | 
						|
//  Copyright 2008 Beman Dawes
 | 
						|
//  Copyright 2009 Vicente J. Botet Escriba
 | 
						|
 | 
						|
//  Distributed under the Boost Software License, Version 1.0.
 | 
						|
//  See http://www.boost.org/LICENSE_1_0.txt
 | 
						|
 | 
						|
/*
 | 
						|
 | 
						|
This code was derived by Beman Dawes from Howard Hinnant's time2_demo prototype.
 | 
						|
Many thanks to Howard for making his code available under the Boost license.
 | 
						|
The original code was modified to conform to Boost conventions and to section
 | 
						|
20.4 Compile-time rational arithmetic [ratio], of the C++ committee working
 | 
						|
paper N2798.
 | 
						|
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2798.pdf.
 | 
						|
 | 
						|
time2_demo contained this comment:
 | 
						|
 | 
						|
    Much thanks to Andrei Alexandrescu,
 | 
						|
                   Walter Brown,
 | 
						|
                   Peter Dimov,
 | 
						|
                   Jeff Garland,
 | 
						|
                   Terry Golubiewski,
 | 
						|
                   Daniel Krugler,
 | 
						|
                   Anthony Williams.
 | 
						|
*/
 | 
						|
 | 
						|
// The way overflow is managed for ratio_less is taken from llvm/libcxx/include/ratio
 | 
						|
 | 
						|
#ifndef BOOST_RATIO_RATIO_FWD_HPP
 | 
						|
#define BOOST_RATIO_RATIO_FWD_HPP
 | 
						|
 | 
						|
#include <boost/ratio/config.hpp>
 | 
						|
 | 
						|
namespace boost
 | 
						|
{
 | 
						|
 | 
						|
//----------------------------------------------------------------------------//
 | 
						|
//                                                                            //
 | 
						|
//              20.6 Compile-time rational arithmetic [ratio]                 //
 | 
						|
//                                                                            //
 | 
						|
//----------------------------------------------------------------------------//
 | 
						|
 | 
						|
// ratio
 | 
						|
template <boost::intmax_t N, boost::intmax_t D = 1> class ratio;
 | 
						|
 | 
						|
// ratio arithmetic
 | 
						|
template <class R1, class R2> struct ratio_add;
 | 
						|
template <class R1, class R2> struct ratio_subtract;
 | 
						|
template <class R1, class R2> struct ratio_multiply;
 | 
						|
template <class R1, class R2> struct ratio_divide;
 | 
						|
 | 
						|
// ratio comparison
 | 
						|
template <class R1, class R2> struct ratio_equal;
 | 
						|
template <class R1, class R2> struct ratio_not_equal;
 | 
						|
template <class R1, class R2> struct ratio_less;
 | 
						|
template <class R1, class R2> struct ratio_less_equal;
 | 
						|
template <class R1, class R2> struct ratio_greater;
 | 
						|
template <class R1, class R2> struct ratio_greater_equal;
 | 
						|
 | 
						|
// convenience SI typedefs
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1), BOOST_RATIO_INTMAX_C(1000000000000000000)> atto;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),    BOOST_RATIO_INTMAX_C(1000000000000000)> femto;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),       BOOST_RATIO_INTMAX_C(1000000000000)> pico;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),          BOOST_RATIO_INTMAX_C(1000000000)> nano;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),             BOOST_RATIO_INTMAX_C(1000000)> micro;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),                BOOST_RATIO_INTMAX_C(1000)> milli;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),                 BOOST_RATIO_INTMAX_C(100)> centi;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1),                  BOOST_RATIO_INTMAX_C(10)> deci;
 | 
						|
typedef ratio<                 BOOST_RATIO_INTMAX_C(10), BOOST_RATIO_INTMAX_C(1)> deca;
 | 
						|
typedef ratio<                BOOST_RATIO_INTMAX_C(100), BOOST_RATIO_INTMAX_C(1)> hecto;
 | 
						|
typedef ratio<               BOOST_RATIO_INTMAX_C(1000), BOOST_RATIO_INTMAX_C(1)> kilo;
 | 
						|
typedef ratio<            BOOST_RATIO_INTMAX_C(1000000), BOOST_RATIO_INTMAX_C(1)> mega;
 | 
						|
typedef ratio<         BOOST_RATIO_INTMAX_C(1000000000), BOOST_RATIO_INTMAX_C(1)> giga;
 | 
						|
typedef ratio<      BOOST_RATIO_INTMAX_C(1000000000000), BOOST_RATIO_INTMAX_C(1)> tera;
 | 
						|
typedef ratio<   BOOST_RATIO_INTMAX_C(1000000000000000), BOOST_RATIO_INTMAX_C(1)> peta;
 | 
						|
typedef ratio<BOOST_RATIO_INTMAX_C(1000000000000000000), BOOST_RATIO_INTMAX_C(1)> exa;
 | 
						|
 | 
						|
}  // namespace boost
 | 
						|
 | 
						|
 | 
						|
#endif  // BOOST_RATIO_HPP
 |