|
|
|
@ -22,8 +22,13 @@ namespace glm |
|
|
|
|
genType const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
genType Tmp = Source % Multiple; |
|
|
|
|
return Tmp ? Source + Multiple - Tmp : Source; |
|
|
|
|
assert(genType(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
genType SourceSign = sign(Source); |
|
|
|
|
genType SourceAbs = abs(Source); |
|
|
|
|
|
|
|
|
|
genType Tmp = SourceAbs % Multiple; |
|
|
|
|
return (Tmp ? SourceAbs + Multiple - Tmp : SourceAbs) * SourceSign; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
@ -36,8 +41,14 @@ namespace glm |
|
|
|
|
float Source = SourceH.toFloat(); |
|
|
|
|
float Multiple = MultipleH.toFloat(); |
|
|
|
|
|
|
|
|
|
int Tmp = int(float(Source)) % int(Multiple); |
|
|
|
|
return detail::half(Tmp ? Source + Multiple - float(Tmp) : Source); |
|
|
|
|
assert(float(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
float SourceSign = sign(Source); |
|
|
|
|
float SourceAbs = abs(Source); |
|
|
|
|
|
|
|
|
|
int Tmp = int(float(SourceAbs)) % int(Multiple); |
|
|
|
|
return detail::half( |
|
|
|
|
(Tmp ? SourceAbs + Multiple - float(Tmp) : SourceAbs) * SourceSign); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
@ -47,8 +58,13 @@ namespace glm |
|
|
|
|
float const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
int Tmp = int(Source) % int(Multiple); |
|
|
|
|
return Tmp ? Source + Multiple - float(Tmp) : Source; |
|
|
|
|
assert(float(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
float SourceSign = sign(Source); |
|
|
|
|
float SourceAbs = abs(Source); |
|
|
|
|
|
|
|
|
|
int Tmp = int(SourceAbs) % int(Multiple); |
|
|
|
|
return (Tmp ? SourceAbs + Multiple - float(Tmp) : SourceAbs) * SourceSign; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
@ -58,8 +74,13 @@ namespace glm |
|
|
|
|
double const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
long Tmp = long(Source) % long(Multiple); |
|
|
|
|
return Tmp ? Source + Multiple - double(Tmp) : Source; |
|
|
|
|
assert(double(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
double SourceSign = sign(Source); |
|
|
|
|
double SourceAbs = abs(Source); |
|
|
|
|
|
|
|
|
|
long Tmp = long(SourceAbs) % long(Multiple); |
|
|
|
|
return (Tmp ? SourceAbs + Multiple - double(Tmp) : SourceAbs) * SourceSign; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
VECTORIZE_VEC_VEC(higherMultiple) |
|
|
|
@ -88,6 +109,8 @@ namespace glm |
|
|
|
|
float Source = SourceH.toFloat(); |
|
|
|
|
float Multiple = MultipleH.toFloat(); |
|
|
|
|
|
|
|
|
|
assert(float(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
int Tmp = int(float(Source)) % int(float(Multiple)); |
|
|
|
|
return detail::half(Tmp ? Source - float(Tmp) : Source); |
|
|
|
|
} |
|
|
|
@ -99,6 +122,8 @@ namespace glm |
|
|
|
|
float const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
assert(float(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
int Tmp = int(Source) % int(Multiple); |
|
|
|
|
return Tmp ? Source - float(Tmp) : Source; |
|
|
|
|
} |
|
|
|
@ -110,6 +135,8 @@ namespace glm |
|
|
|
|
double const & Multiple |
|
|
|
|
) |
|
|
|
|
{ |
|
|
|
|
assert(double(0) <= Multiple); |
|
|
|
|
|
|
|
|
|
long Tmp = long(Source) % long(Multiple); |
|
|
|
|
return Tmp ? Source - double(Tmp) : Source; |
|
|
|
|
} |
|
|
|
|