YSTest: ystdex::fixed_point< _tBase, _vInt, _vFrac > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | 静态 Public 成员函数 | 静态 Public 属性 | 静态 Private 成员函数 | Private 属性 | 友元 | 所有成员列表
ystdex::fixed_point< _tBase, _vInt, _vFrac > 模板类 参考

通用定点数。 更多...

`#include <rational.hpp>`

类 ystdex::fixed_point< _tBase, _vInt, _vFrac > 继承关系图:
[图例]
ystdex::fixed_point< _tBase, _vInt, _vFrac > 的协作图:
[图例]

## Public 类型

using | base_type = _tBase

## Public 成员函数

| fixed_point ()=default
| 无参数构造。 更多...
| fixed_point (base_type v, raw_tag)
template<typename _tInt >
| fixed_point (_tInt val, enable_if_t< is_integral< _tInt >::value, _tInt * >={})
template<typename _tFloat >
| fixed_point (_tFloat val, enable_if_t< is_floating_point< _tFloat >::value, _tFloat * >={})
template<typename _tFirst , typename _tSecond >
| fixed_point (_tFirst x, _tSecond y, enable_if_t< and_< is_integral< _tFirst >, not_< is_same< _tSecond, raw_tag >>>::value, _tFirst * >={})
template<typename _tFirst , typename _tSecond >
| fixed_point (_tFirst x, _tSecond y, enable_if_t< and_< is_floating_point< _tFirst >, not_< is_same< _tSecond, raw_tag >>>::value, _tFirst * >={})
| fixed_point (const fixed_point &)=default
template<size_t _vOtherInt, size_t _vOtherFrac>
| fixed_point (const fixed_point< base_type, _vOtherInt, _vOtherFrac > &f, enable_if_t<(_vOtherInt< int_bit_n), base_type * >={})
template<size_t _vOtherInt, size_t _vOtherFrac>
| fixed_point (const fixed_point< base_type, _vOtherInt, _vOtherFrac > &f, enable_if_t<(int_bit_n< _vOtherInt), base_type * >={})
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>
| fixed_point (const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > &f, enable_if_t<(frac_bit_n==_vOtherFrac), base_type * >={})
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>
| fixed_point (const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > &f, enable_if_t<(frac_bit_n< _vOtherFrac), base_type * >={})
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>
| fixed_point (const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > &f, enable_if_t<(_vOtherFrac< frac_bit_n), base_type * >={})
fixed_point & | operator= (const fixed_point &)=default
bool | operator< (const fixed_point &f) const
bool | operator== (const fixed_point &f) const
bool | operator! () const
fixed_point | operator- () const
fixed_point & | operator++ ()
fixed_point & | operator-- ()
fixed_point & | operator+= (const fixed_point &f)
fixed_point & | operator-= (const fixed_point &f)
fixed_point & | operator*= (const fixed_point &f)
fixed_point & | operator/= (const fixed_point &f)
fixed_point & | operator>>= (size_t s)
fixed_point & | operator<<= (size_t s)
template<typename _type , typename = enable_if_t<is_integral<_type>::value>>
| operator _type () const
template<typename _type , typename _type2 = _type, typename = enable_if_t<is_floating_point<_type2>::value>>
| operator _type () const
base_type | get () const

## 静态 Public 成员函数

static base_type | base_element ()
| 取 `base_type` 表达的单位元。 更多...
static fixed_point | identity ()
| 取单位元。 更多...

## 静态 Public 属性

static const size_t | int_bit_n = _vInt
| 整数部分二进制位数。 更多...
static const size_t | frac_bit_n = _vFrac
| 小数部分二进制位数。 更多...
static const size_t | digit_bit_n = int_bit_n + frac_bit_n
| 非符号位的二进制位数。 更多...

## 静态 Private 成员函数

template<size_t _vShiftBits>
static base_type | mul (base_type x, base_type y, true_)
template<size_t _vShiftBits>
static base_type | mul (base_type x, base_type y, false_)
template<size_t _vShiftBits>
static base_type | mul_signed (_t< make_widen_int< base_type >> tmp)

## Private 属性

base_type | value

## 友元

template<typename , size_t , size_t >
class | fixed_point
class | std::numeric_limits< fixed_point< _tBase, _vInt, _vFrac > >
fixed_point | abs (fixed_point x)
fixed_point | ceil (fixed_point x)
fixed_point | fabs (fixed_point x)
fixed_point | floor (fixed_point x)
fixed_point | round (fixed_point x)

## 详细描述

### template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
class ystdex::fixed_point< _tBase, _vInt, _vFrac >

通用定点数。

基于整数算术实现的确定有限精度二进制定点小数类型。可用于替换内建的浮点数类型。 是否有符号同基本整数类型参数。若有符号，则最高有效位为符号位。 逻辑布局： [符号位]|整数部分|小数部分 。各个部分的内部为补码表示。

模板参数

  _tBase | 基本整数类型。
  _vInt | 整数部分（若有符号则不包括符号位，下同）二进制位数。
  _vFrac | 分数部分二进制位数。

注解
  默认保留 6 位二进制小数。
  部分实现参考： http://www.codeproject.com/KB/cpp/fp_math.aspx 。

警告
  基本整数类型需要具有补码表示。
  非虚析构。
  算术运算可能溢出。

自从
  build 260

待办事项:

  实现模除和位操作。

  根据范围禁止算术类型隐式转换。

在文件 rational.hpp 第 163 行定义.

## 成员类型定义说明

## ◆ base_type

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

using ystdex::fixed_point< _tBase, _vInt, _vFrac >::base_type = _tBase

在文件 rational.hpp 第 176 行定义.

## 构造及析构函数说明

## ◆ fixed_point() [1/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( |  | ) |

default

无参数构造。

警告
  基本整数类型成员未被初始化，具有未决定值，使用可能造成未定义行为。

## ◆ fixed_point() [2/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | base_type | v,
|  | raw_tag |
| ) |  |

inline

自从
  build 439

在文件 rational.hpp 第 196 行定义.

## ◆ fixed_point() [3/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tInt >

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | _tInt | val,
|  | enable_if_t< is_integral< _tInt >::value, _tInt * > | = `{}`
| ) |  |

inline

自从
  build 586

在文件 rational.hpp 第 202 行定义.

## ◆ fixed_point() [4/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tFloat >

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | _tFloat | val,
|  | enable_if_t< is_floating_point< _tFloat >::value, _tFloat * > | = `{}`
| ) |  |

inlineexplicit

自从
  build 581

在文件 rational.hpp 第 212 行定义.

## ◆ fixed_point() [5/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tFirst , typename _tSecond >

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | _tFirst | x,
|  | _tSecond | y,
|  | enable_if_t< and_< is_integral< _tFirst >, not_< is_same< _tSecond, raw_tag >>>::value, _tFirst * > | = `{}`
| ) |  |

inline

自从
  build 595

在文件 rational.hpp 第 220 行定义.

## ◆ fixed_point() [6/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tFirst , typename _tSecond >

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | _tFirst | x,
|  | _tSecond | y,
|  | enable_if_t< and_< is_floating_point< _tFirst >, not_< is_same< _tSecond, raw_tag >>>::value, _tFirst * > | = `{}`
| ) |  |

inlineexplicit

在文件 rational.hpp 第 227 行定义.

## ◆ fixed_point() [7/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< _tBase, _vInt, _vFrac > & |  | ) |

inlinedefault

自从
  build 260

## ◆ fixed_point() [8/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<size_t _vOtherInt, size_t _vOtherFrac>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< base_type, _vOtherInt, _vOtherFrac > & | f,
|  | enable_if_t<(_vOtherInt< int_bit_n), base_type * > | = `{}`
| ) |  |

inline

在文件 rational.hpp 第 238 行定义.

## ◆ fixed_point() [9/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<size_t _vOtherInt, size_t _vOtherFrac>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< base_type, _vOtherInt, _vOtherFrac > & | f,
|  | enable_if_t<(int_bit_n< _vOtherInt), base_type * > | = `{}`
| ) |  |

inline

在文件 rational.hpp 第 244 行定义.

## ◆ fixed_point() [10/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > & | f,
|  | enable_if_t<(frac_bit_n==_vOtherFrac), base_type * > | = `{}`
| ) |  |

inline

在文件 rational.hpp 第 250 行定义.

## ◆ fixed_point() [11/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > & | f,
|  | enable_if_t<(frac_bit_n< _vOtherFrac), base_type * > | = `{}`
| ) |  |

inline

在文件 rational.hpp 第 257 行定义.

## ◆ fixed_point() [12/12]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _tOtherBase , size_t _vOtherInt, size_t _vOtherFrac>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::fixed_point | ( | const fixed_point< _tOtherBase, _vOtherInt, _vOtherFrac > & | f,
|  | enable_if_t<(_vOtherFrac< frac_bit_n), base_type * > | = `{}`
| ) |  |

inline

在文件 rational.hpp 第 264 行定义.

## 成员函数说明

## ◆ base_element()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

static base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::base_element | ( |  | ) |

inlinestatic

取 `base_type` 表达的单位元。

取值等于 1 的元素，使用 `base_type` 表达。

在文件 rational.hpp 第 397 行定义.

被这些函数引用 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::identity(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator _type(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator++() , 以及 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator--().

这是这个函数的调用关系图:

## ◆ get()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::get | ( |  | ) | const

inline

自从
  build 595

在文件 rational.hpp 第 423 行定义.

## ◆ identity()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

static fixed_point ystdex::fixed_point< _tBase, _vInt, _vFrac >::identity | ( |  | ) |

inlinestatic

取单位元。

取值等于 1 的元素。

在文件 rational.hpp 第 434 行定义.

## ◆ mul() [1/2]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<size_t _vShiftBits>

static base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::mul | ( | base_type | x,
|  | base_type | y,
|  | false_ |
| ) |  |

inlinestaticprivate

自从
  build 729

在文件 rational.hpp 第 451 行定义.

## ◆ mul() [2/2]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<size_t _vShiftBits>

static base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::mul | ( | base_type | x,
|  | base_type | y,
|  | true_ |
| ) |  |

inlinestaticprivate

自从
  build 729

在文件 rational.hpp 第 443 行定义.

## ◆ mul_signed()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<size_t _vShiftBits>

static base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::mul_signed | ( | _t< make_widen_int< base_type >> | tmp | ) |

inlinestaticprivate

自从
  build 650

在文件 rational.hpp 第 463 行定义.

## ◆ operator _type() [1/2]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _type , typename = enable_if_t<is_integral<_type>::value>>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator _type | ( |  | ) | const

inlineexplicit

自从
  build 581

在文件 rational.hpp 第 371 行定义.

## ◆ operator _type() [2/2]

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename _type , typename _type2 = _type, typename = enable_if_t<is_floating_point<_type2>::value>>

ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator _type | ( |  | ) | const

inline

在文件 rational.hpp 第 378 行定义.

## ◆ operator!()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

bool ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator! | ( |  | ) | const

inline

在文件 rational.hpp 第 288 行定义.

## ◆ operator*=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator*= | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) |

inline

在文件 rational.hpp 第 333 行定义.

## ◆ operator++()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator++ | ( |  | ) |

inline

自从
  build 595

在文件 rational.hpp 第 305 行定义.

## ◆ operator+=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator+= | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) |

inline

在文件 rational.hpp 第 319 行定义.

## ◆ operator-()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator- | ( |  | ) | const

inline

在文件 rational.hpp 第 294 行定义.

## ◆ operator--()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator-- | ( |  | ) |

inline

在文件 rational.hpp 第 312 行定义.

## ◆ operator-=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator-= | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) |

inline

在文件 rational.hpp 第 326 行定义.

## ◆ operator/=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator/= | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) |

inline

在文件 rational.hpp 第 341 行定义.

## ◆ operator<()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

bool ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator< | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) | const

inline

在文件 rational.hpp 第 275 行定义.

## ◆ operator<<=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator<<= | ( | size_t | s | ) |

inline

自从
  build 595

在文件 rational.hpp 第 359 行定义.

## ◆ operator=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator= | ( | const fixed_point< _tBase, _vInt, _vFrac > & |  | ) |

default

自从
  build 586

## ◆ operator==()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

bool ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator== | ( | const fixed_point< _tBase, _vInt, _vFrac > & | f | ) | const

inline

在文件 rational.hpp 第 282 行定义.

## ◆ operator>>=()

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point& ystdex::fixed_point< _tBase, _vInt, _vFrac >::operator>>= | ( | size_t | s | ) |

inline

在文件 rational.hpp 第 352 行定义.

## 友元及相关函数文档

## ◆ abs

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point abs | ( | fixed_point< _tBase, _vInt, _vFrac > | x | ) |

friend

自从
  build 717

在文件 rational.hpp 第 386 行定义.

## ◆ ceil

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point ceil | ( | fixed_point< _tBase, _vInt, _vFrac > | x | ) |

friend

在文件 rational.hpp 第 403 行定义.

## ◆ fabs

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point fabs | ( | fixed_point< _tBase, _vInt, _vFrac > | x | ) |

friend

在文件 rational.hpp 第 410 行定义.

## ◆ fixed_point

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>
template<typename , size_t , size_t >

friend class fixed_point

friend

在文件 rational.hpp 第 172 行定义.

被这些函数引用 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::identity().

## ◆ floor

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point floor | ( | fixed_point< _tBase, _vInt, _vFrac > | x | ) |

friend

在文件 rational.hpp 第 416 行定义.

## ◆ round

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

fixed_point round | ( | fixed_point< _tBase, _vInt, _vFrac > | x | ) |

friend

在文件 rational.hpp 第 470 行定义.

## ◆ std::numeric_limits< fixed_point< _tBase, _vInt, _vFrac > >

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

friend class std::numeric_limits< fixed_point< _tBase, _vInt, _vFrac > >

friend

在文件 rational.hpp 第 172 行定义.

## 类成员变量说明

## ◆ digit_bit_n

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

const size_t ystdex::fixed_point< _tBase, _vInt, _vFrac >::digit_bit_n = int_bit_n + frac_bit_n

static

非符号位的二进制位数。

在文件 rational.hpp 第 183 行定义.

## ◆ frac_bit_n

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

const size_t ystdex::fixed_point< _tBase, _vInt, _vFrac >::frac_bit_n = _vFrac

static

小数部分二进制位数。

在文件 rational.hpp 第 181 行定义.

被这些函数引用 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::base_element(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator _type() , 以及 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator/=().

## ◆ int_bit_n

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

const size_t ystdex::fixed_point< _tBase, _vInt, _vFrac >::int_bit_n = _vInt

static

整数部分二进制位数。

在文件 rational.hpp 第 179 行定义.

## ◆ value

template<typename _tBase = std::int32_t, size_t _vInt = std::numeric_limits<_tBase>::digits - 6U, size_t _vFrac = std::numeric_limits<_tBase>::digits - _vInt>

base_type ystdex::fixed_point< _tBase, _vInt, _vFrac >::value

private

在文件 rational.hpp 第 186 行定义.

被这些函数引用 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::get(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator _type(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator!(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator*=(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator++(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator+=(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator-(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator--(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator-=(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator/=(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator<(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator<<=(), ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator==() , 以及 ystdex::fixed_point< yimpl(std::uint32_t, 12U)>::operator>>=().

该类的文档由以下文件生成:

- rational.hpp