openMSX
Public Types | Public Member Functions | Static Public Attributes | List of all members
DivModByConstPrivate::DBCHelper2< DIVISOR, N > Struct Template Reference

#include <DivModByConst.hh>

Public Types

using K = Div128< 1<< L, 0, 0, 0xffffffffffffffffull - J >
 
using M_LOW = Div128< 1<< L, 0, 0, DIVISOR >
 
using M_HIGH = Div128<(1<< L)+K::quotientHigh, K::quotientLow, 0, DIVISOR >
 
using R = DBCReduce2< M_LOW ::quotientHigh, M_LOW ::quotientLow, M_HIGH::quotientHigh, M_HIGH::quotientLow, L >
 

Public Member Functions

constexpr uint32_t operator() (uint64_t dividend) const
 

Static Public Attributes

static constexpr uint32_t L = Math::log2p1(DIVISOR)
 
static constexpr uint64_t J = 0xffffffffffffffffull % DIVISOR
 

Detailed Description

template<uint32_t DIVISOR, uint32_t N>
struct DivModByConstPrivate::DBCHelper2< DIVISOR, N >

Definition at line 190 of file DivModByConst.hh.

Member Typedef Documentation

◆ K

template<uint32_t DIVISOR, uint32_t N>
using DivModByConstPrivate::DBCHelper2< DIVISOR, N >::K = Div128<1 << L, 0, 0, 0xffffffffffffffffull - J>

Definition at line 194 of file DivModByConst.hh.

◆ M_HIGH

template<uint32_t DIVISOR, uint32_t N>
using DivModByConstPrivate::DBCHelper2< DIVISOR, N >::M_HIGH = Div128<(1 << L) + K::quotientHigh, K::quotientLow, 0, DIVISOR>

Definition at line 197 of file DivModByConst.hh.

◆ M_LOW

template<uint32_t DIVISOR, uint32_t N>
using DivModByConstPrivate::DBCHelper2< DIVISOR, N >::M_LOW = Div128< 1 << L, 0, 0, DIVISOR>

Definition at line 196 of file DivModByConst.hh.

◆ R

template<uint32_t DIVISOR, uint32_t N>
using DivModByConstPrivate::DBCHelper2< DIVISOR, N >::R = DBCReduce2<M_LOW ::quotientHigh, M_LOW ::quotientLow, M_HIGH::quotientHigh, M_HIGH::quotientLow, L>

Definition at line 199 of file DivModByConst.hh.

Member Function Documentation

◆ operator()()

template<uint32_t DIVISOR, uint32_t N>
constexpr uint32_t DivModByConstPrivate::DBCHelper2< DIVISOR, N >::operator() ( uint64_t  dividend) const
inline

Definition at line 201 of file DivModByConst.hh.

Member Data Documentation

◆ J

template<uint32_t DIVISOR, uint32_t N>
constexpr uint64_t DivModByConstPrivate::DBCHelper2< DIVISOR, N >::J = 0xffffffffffffffffull % DIVISOR
static

Definition at line 193 of file DivModByConst.hh.

◆ L

template<uint32_t DIVISOR, uint32_t N>
constexpr uint32_t DivModByConstPrivate::DBCHelper2< DIVISOR, N >::L = Math::log2p1(DIVISOR)
static

Definition at line 192 of file DivModByConst.hh.


The documentation for this struct was generated from the following file: