MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / divmod

Function divmod

tensorflow/compiler/xla/python/bfloat16.cc:877–903  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

875};
876
877std::pair<float, float> divmod(float a, float b) {
878 if (b == 0.0f) {
879 float nan = std::numeric_limits<float>::quiet_NaN();
880 return {nan, nan};
881 }
882 float mod = std::fmod(a, b);
883 float div = (a - mod) / b;
884 if (mod != 0.0f) {
885 if ((b < 0.0f) != (mod < 0.0f)) {
886 mod += b;
887 div -= 1.0f;
888 }
889 } else {
890 mod = std::copysign(0.0f, b);
891 }
892
893 float floordiv;
894 if (div != 0.0f) {
895 floordiv = std::floor(div);
896 if (div - floordiv > 0.5f) {
897 floordiv += 1.0f;
898 }
899 } else {
900 floordiv = std::copysign(0.0f, a / b);
901 }
902 return {floordiv, mod};
903}
904
905struct FloorDivide {
906 bfloat16 operator()(bfloat16 a, bfloat16 b) {

Callers 7

_shard_sizesMethod · 0.85
_EmbeddingResultFunction · 0.85
_EmbeddingResultFunction · 0.85
operator()Method · 0.85
operator()Method · 0.85
CallMethod · 0.85

Calls 2

fmodClass · 0.85
floorClass · 0.85

Tested by 2

_EmbeddingResultFunction · 0.68
_EmbeddingResultFunction · 0.68