25#ifdef GRN_HAVE_BFLOAT16
26 template <
typename TYPE>
28 to_bfloat16(TYPE value)
30 if constexpr (std::is_same_v<TYPE, grn_bfloat16>) {
33 grn_bfloat16 value_bfloat16 = 0;
34 float value_float = value;
35 std::memcpy(&value_bfloat16,
36 reinterpret_cast<char *
>(&value_float) +
sizeof(
float) -
38 sizeof(grn_bfloat16));
39 return value_bfloat16;
44 bfloat16_to_float32(grn_bfloat16 value)
46 float value_float = 0;
47 std::memcpy(
reinterpret_cast<char *
>(&value_float) +
sizeof(
float) -
50 sizeof(grn_bfloat16));
55 template <
typename TYPE>
56 std::enable_if_t<std::is_integral_v<TYPE>,
bool>
62 template <
typename TYPE>
63 std::enable_if_t<std::is_floating_point_v<TYPE>,
bool>
66 return std::abs(value) < std::numeric_limits<TYPE>::epsilon();
69#ifdef GRN_HAVE_BFLOAT16
70 template <
typename TYPE>
71 std::enable_if_t<std::is_same_v<TYPE, grn_bfloat16>,
bool>
74 return is_zero(bfloat16_to_float32(value));
80 template <
typename TYPE>
103#ifdef GRN_HAVE_BFLOAT16
114 return default_value;
118 template <
typename NUMERIC>
150#ifdef GRN_HAVE_BFLOAT16
162 if constexpr (std::is_floating_point_v<NUMERIC>) {
173 template <
typename NUMERIC>
205#ifdef GRN_HAVE_BFLOAT16
217 if constexpr (std::is_floating_point_v<NUMERIC>) {
~TextBulk()
Definition bulk.hpp:236
TextBulk(grn_ctx *ctx, uint8_t flags=0)
Definition bulk.hpp:231
std::string value()
Definition bulk.hpp:245
grn_obj * operator*()
Definition bulk.hpp:239
#define GRN_FLOAT_VALUE(obj)
Definition groonga.h:3108
#define GRN_INT16_VALUE(obj)
Definition groonga.h:3100
#define GRN_INT32_PUT(ctx, obj, val)
Definition groonga.h:3177
#define GRN_BOOL_SET(ctx, obj, val)
Definition groonga.h:2879
grn_rc
Definition groonga.h:61
#define GRN_INT8_VALUE(obj)
Definition groonga.h:3098
#define GRN_INT16_PUT(ctx, obj, val)
Definition groonga.h:3167
#define GRN_BFLOAT16_VALUE(obj)
Definition groonga.h:3106
#define GRN_TIME_VALUE
Definition groonga.h:3109
#define GRN_UINT16_PUT(ctx, obj, val)
Definition groonga.h:3172
#define GRN_INT8_SET(ctx, obj, val)
Definition groonga.h:2884
#define GRN_FLOAT32_PUT(ctx, obj, val)
Definition groonga.h:3202
#define GRN_UINT8_VALUE(obj)
Definition groonga.h:3099
#define GRN_UINT32_VALUE(obj)
Definition groonga.h:3103
#define GRN_TEXT_VALUE(obj)
Definition groonga.h:2785
#define GRN_UINT64_VALUE(obj)
Definition groonga.h:3105
#define GRN_INT64_VALUE(obj)
Definition groonga.h:3104
#define GRN_UINT8_SET(ctx, obj, val)
Definition groonga.h:2889
#define GRN_FLOAT_SET(ctx, obj, val)
Definition groonga.h:2934
#define GRN_OBJ_FIN(ctx, obj)
Definition groonga.h:958
#define GRN_FLOAT32_SET(ctx, obj, val)
Definition groonga.h:2929
#define GRN_UINT32_SET(ctx, obj, val)
Definition groonga.h:2909
#define GRN_INT32_SET(ctx, obj, val)
Definition groonga.h:2904
#define GRN_UINT64_SET(ctx, obj, val)
Definition groonga.h:2919
#define GRN_TIME_SET
Definition groonga.h:2939
#define GRN_INT8_PUT(ctx, obj, val)
Definition groonga.h:3157
#define GRN_INT16_SET(ctx, obj, val)
Definition groonga.h:2894
#define GRN_UINT64_PUT(ctx, obj, val)
Definition groonga.h:3192
#define GRN_INT32_VALUE(obj)
Definition groonga.h:3102
#define GRN_BFLOAT16_SET(ctx, obj, val)
Definition groonga.h:2924
#define GRN_UINT16_VALUE(obj)
Definition groonga.h:3101
@ GRN_DB_UINT8
Definition groonga.h:1069
@ GRN_DB_INT8
Definition groonga.h:1068
@ GRN_DB_TIME
Definition groonga.h:1077
@ GRN_DB_BFLOAT16
Definition groonga.h:1084
@ GRN_DB_UINT16
Definition groonga.h:1071
@ GRN_DB_INT32
Definition groonga.h:1072
@ GRN_DB_BOOL
Definition groonga.h:1067
@ GRN_DB_INT16
Definition groonga.h:1070
@ GRN_DB_FLOAT32
Definition groonga.h:1083
@ GRN_DB_UINT32
Definition groonga.h:1073
@ GRN_DB_UINT64
Definition groonga.h:1075
@ GRN_DB_INT64
Definition groonga.h:1074
@ GRN_DB_FLOAT
Definition groonga.h:1076
#define GRN_UINT32_PUT(ctx, obj, val)
Definition groonga.h:3182
#define GRN_UINT8_PUT(ctx, obj, val)
Definition groonga.h:3162
#define GRN_BOOL_PUT(ctx, obj, val)
Definition groonga.h:3152
#define GRN_TIME_PUT
Definition groonga.h:3212
#define GRN_BOOL_VALUE(obj)
Definition groonga.h:3097
#define GRN_FLOAT32_VALUE(obj)
Definition groonga.h:3107
#define GRN_TEXT_INIT(obj, flags)
Definition groonga.h:2750
#define GRN_INT64_SET(ctx, obj, val)
Definition groonga.h:2914
#define GRN_BFLOAT16_PUT(ctx, obj, val)
Definition groonga.h:3197
#define GRN_UINT16_SET(ctx, obj, val)
Definition groonga.h:2899
#define GRN_INT64_PUT(ctx, obj, val)
Definition groonga.h:3187
#define GRN_TEXT_LEN(obj)
Definition groonga.h:2786
#define GRN_FLOAT_PUT(ctx, obj, val)
Definition groonga.h:3207
grn_rc set(grn_ctx *ctx, grn_obj *bulk, NUMERIC value)
Definition bulk.hpp:120
grn_rc put(grn_ctx *ctx, grn_obj *bulk, NUMERIC value)
Definition bulk.hpp:175
TYPE get(grn_ctx *ctx, grn_obj *bulk, TYPE default_value)
Definition bulk.hpp:82
std::enable_if_t< std::is_integral_v< TYPE >, bool > is_zero(TYPE value)
Definition bulk.hpp:57
grn_rc rc
Definition groonga.h:352
grn_obj_header header
Definition groonga.h:920
#define GRN_TIME_USEC_PER_SEC
Definition time.h:44