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:3109
#define GRN_INT16_VALUE(obj)
Definition groonga.h:3101
#define GRN_INT32_PUT(ctx, obj, val)
Definition groonga.h:3178
#define GRN_BOOL_SET(ctx, obj, val)
Definition groonga.h:2880
grn_rc
Definition groonga.h:61
#define GRN_INT8_VALUE(obj)
Definition groonga.h:3099
#define GRN_INT16_PUT(ctx, obj, val)
Definition groonga.h:3168
#define GRN_BFLOAT16_VALUE(obj)
Definition groonga.h:3107
#define GRN_TIME_VALUE
Definition groonga.h:3110
#define GRN_UINT16_PUT(ctx, obj, val)
Definition groonga.h:3173
#define GRN_INT8_SET(ctx, obj, val)
Definition groonga.h:2885
#define GRN_FLOAT32_PUT(ctx, obj, val)
Definition groonga.h:3203
#define GRN_UINT8_VALUE(obj)
Definition groonga.h:3100
#define GRN_UINT32_VALUE(obj)
Definition groonga.h:3104
#define GRN_TEXT_VALUE(obj)
Definition groonga.h:2786
#define GRN_UINT64_VALUE(obj)
Definition groonga.h:3106
#define GRN_INT64_VALUE(obj)
Definition groonga.h:3105
#define GRN_UINT8_SET(ctx, obj, val)
Definition groonga.h:2890
#define GRN_FLOAT_SET(ctx, obj, val)
Definition groonga.h:2935
#define GRN_OBJ_FIN(ctx, obj)
Definition groonga.h:959
#define GRN_FLOAT32_SET(ctx, obj, val)
Definition groonga.h:2930
#define GRN_UINT32_SET(ctx, obj, val)
Definition groonga.h:2910
#define GRN_INT32_SET(ctx, obj, val)
Definition groonga.h:2905
#define GRN_UINT64_SET(ctx, obj, val)
Definition groonga.h:2920
#define GRN_TIME_SET
Definition groonga.h:2940
#define GRN_INT8_PUT(ctx, obj, val)
Definition groonga.h:3158
#define GRN_INT16_SET(ctx, obj, val)
Definition groonga.h:2895
#define GRN_UINT64_PUT(ctx, obj, val)
Definition groonga.h:3193
#define GRN_INT32_VALUE(obj)
Definition groonga.h:3103
#define GRN_BFLOAT16_SET(ctx, obj, val)
Definition groonga.h:2925
#define GRN_UINT16_VALUE(obj)
Definition groonga.h:3102
@ GRN_DB_UINT8
Definition groonga.h:1070
@ GRN_DB_INT8
Definition groonga.h:1069
@ GRN_DB_TIME
Definition groonga.h:1078
@ GRN_DB_BFLOAT16
Definition groonga.h:1085
@ GRN_DB_UINT16
Definition groonga.h:1072
@ GRN_DB_INT32
Definition groonga.h:1073
@ GRN_DB_BOOL
Definition groonga.h:1068
@ GRN_DB_INT16
Definition groonga.h:1071
@ GRN_DB_FLOAT32
Definition groonga.h:1084
@ GRN_DB_UINT32
Definition groonga.h:1074
@ GRN_DB_UINT64
Definition groonga.h:1076
@ GRN_DB_INT64
Definition groonga.h:1075
@ GRN_DB_FLOAT
Definition groonga.h:1077
#define GRN_UINT32_PUT(ctx, obj, val)
Definition groonga.h:3183
#define GRN_UINT8_PUT(ctx, obj, val)
Definition groonga.h:3163
#define GRN_BOOL_PUT(ctx, obj, val)
Definition groonga.h:3153
#define GRN_TIME_PUT
Definition groonga.h:3213
#define GRN_BOOL_VALUE(obj)
Definition groonga.h:3098
#define GRN_FLOAT32_VALUE(obj)
Definition groonga.h:3108
#define GRN_TEXT_INIT(obj, flags)
Definition groonga.h:2751
#define GRN_INT64_SET(ctx, obj, val)
Definition groonga.h:2915
#define GRN_BFLOAT16_PUT(ctx, obj, val)
Definition groonga.h:3198
#define GRN_UINT16_SET(ctx, obj, val)
Definition groonga.h:2900
#define GRN_INT64_PUT(ctx, obj, val)
Definition groonga.h:3188
#define GRN_TEXT_LEN(obj)
Definition groonga.h:2787
#define GRN_FLOAT_PUT(ctx, obj, val)
Definition groonga.h:3208
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:921
#define GRN_TIME_USEC_PER_SEC
Definition time.h:44