36#define unlikely(x) __builtin_expect(!!(x), 0)
41#define likely(x) __builtin_expect(!!(x), 1)
72 void init(
const double &);
77 static const int FIXPREC;
80 static const double fixOne;
88 fracPart += f.fracPart;
89 if (fracPart & carryPos)
139 inline bool isDone()
const;
186 id->cell +=
id->dimStep;
188 id->cell +=
id->scaleStep;
193 id->countSteps =
id->maxSteps;
A fixed-point representation of a double, with 30 digit fractional part precision.
Definition miterf.hh:53
r_FixedPointNumber(const r_FixedPointNumber &)=default
r_FixedPointNumber & operator=(const r_FixedPointNumber &)=default
friend std::ostream & operator<<(std::ostream &, r_FixedPointNumber &)
std::string toString() const
r_FixedPointNumber(const double &)
bool stepForwardFlag(const r_FixedPointNumber &)
Add the given value to this value.
Definition miterf.hh:85
r_FixedPointNumber & operator=(const double &)
r_FixedPointNumber()=default
r_Range getIntPart() const
Definition miterf.hh:97
The spatial domain of an MDD is represented by an object of class r_Minterval.
Definition minterval.hh:226
r_MiterFloat is used for iterating through parts of multidimensional intervals with arbitrary steppin...
Definition miterf.hh:117
r_MiterFloat & operator=(r_MiterFloat &&)=delete
char * currentCell
Definition miterf.hh:158
bool isDone() const
true if done
Definition miterf.hh:215
bool done
true when the iteration over dstDomain is finished
Definition miterf.hh:167
void reset()
iterator reset
r_Dimension dim
source tile dimension
Definition miterf.hh:165
char * nextCell()
get the next cell
Definition miterf.hh:170
r_MiterFloat(r_Bytes srcCellSize, const char *srcTile, const r_Minterval &fullTileDomain, const r_Minterval &srcDomain, const r_Minterval &dstDomain)
Constructor getting the source tile, the source domain in that tile, and the destination domain.
iter_desc * iterDescEnd
Definition miterf.hh:163
iter_desc * iterDesc
Iteration information for each axis.
Definition miterf.hh:162
r_MiterFloat(r_MiterFloat &&)=delete
r_MiterFloat & operator=(const r_MiterFloat &)=delete
r_MiterFloat(const r_MiterFloat &)=delete
const char * firstCell
start of the source tile cell data at the origin of srcDomain
Definition miterf.hh:160
std::int64_t r_Range
for axis indexing, e.g.
Definition mddtypes.hh:53
std::uint32_t r_Dimension
number of dimensions in r_Point and r_Minterval.
Definition mddtypes.hh:56
size_t r_Bytes
number of bytes in an tile or mdd or type.
Definition mddtypes.hh:43
#define likely(x)
Use in conditionals to signal that the condition is very likely https://gcc.gnu.org/onlinedocs/gcc/Ot...
Definition miterf.hh:41
#define unlikely(x)
Use in conditionals to signal that the condition is very unlikely https://gcc.gnu....
Definition miterf.hh:36
Iteration information for each axis.
Definition miterf.hh:144
r_Range scaleStep
Definition miterf.hh:153
r_FixedPointNumber min
Definition miterf.hh:145
r_Range maxSteps
Definition miterf.hh:150
r_Range countSteps
Definition miterf.hh:149
r_Range dimStep
Definition miterf.hh:152
r_FixedPointNumber pos
Definition miterf.hh:146
r_FixedPointNumber step
Definition miterf.hh:147
char * cell
Definition miterf.hh:155