26#ifdef GRN_HAVE_BFLOAT16
31 template <
typename TYPE>
33 to_bfloat16(TYPE value)
35 if constexpr (std::is_same_v<TYPE, grn_bfloat16>) {
38 return static_cast<grn_bfloat16
>(value);
46 bfloat16_to_float32(grn_bfloat16 value)
48 return static_cast<float>(value);
52 template <
typename TYPE>
53 std::enable_if_t<std::is_integral_v<TYPE>,
bool>
59 template <
typename TYPE>
60 std::enable_if_t<std::is_floating_point_v<TYPE>,
bool>
63 return std::abs(value) < std::numeric_limits<TYPE>::epsilon();
66#ifdef GRN_HAVE_BFLOAT16
67 template <
typename TYPE>
68 std::enable_if_t<std::is_same_v<TYPE, grn_bfloat16>,
bool>
71 return is_zero(
static_cast<float>(value));
77 template <
typename TYPE>
81 switch (
bulk->header.domain) {
100#ifdef GRN_HAVE_BFLOAT16
111 return default_value;
115 template <
typename NUMERIC>
119 switch (
bulk->header.domain) {
147#ifdef GRN_HAVE_BFLOAT16
152 if constexpr (std::is_integral_v<NUMERIC>) {
166 if constexpr (std::is_floating_point_v<NUMERIC>) {
177 template <
typename NUMERIC>
181 switch (
bulk->header.domain) {
209#ifdef GRN_HAVE_BFLOAT16
212 if constexpr (std::is_integral_v<NUMERIC>) {
226 if constexpr (std::is_floating_point_v<NUMERIC>) {
~TextBulk()
Definition bulk.hpp:245
TextBulk(grn_ctx *ctx, uint8_t flags=0)
Definition bulk.hpp:240
std::string value()
Definition bulk.hpp:254
grn_obj * operator*()
Definition bulk.hpp:248
#define GRN_FLOAT_VALUE(obj)
Definition groonga.h:3213
#define GRN_INT16_VALUE(obj)
Definition groonga.h:3205
#define GRN_INT32_PUT(ctx, obj, val)
Definition groonga.h:3282
#define GRN_BOOL_SET(ctx, obj, val)
Definition groonga.h:2984
grn_rc
Definition groonga.h:61
#define GRN_INT8_VALUE(obj)
Definition groonga.h:3203
#define GRN_INT16_PUT(ctx, obj, val)
Definition groonga.h:3272
#define GRN_BFLOAT16_VALUE(obj)
Definition groonga.h:3211
struct _grn_ctx grn_ctx
grn_ctx is the most important object.
Definition groonga.h:332
#define GRN_TIME_VALUE
Definition groonga.h:3214
#define GRN_UINT16_PUT(ctx, obj, val)
Definition groonga.h:3277
#define GRN_INT8_SET(ctx, obj, val)
Definition groonga.h:2989
#define GRN_FLOAT32_PUT(ctx, obj, val)
Definition groonga.h:3307
#define GRN_UINT8_VALUE(obj)
Definition groonga.h:3204
#define GRN_UINT32_VALUE(obj)
Definition groonga.h:3208
#define GRN_TEXT_VALUE(obj)
Definition groonga.h:2889
#define GRN_UINT64_VALUE(obj)
Definition groonga.h:3210
#define GRN_INT64_VALUE(obj)
Definition groonga.h:3209
#define GRN_UINT8_SET(ctx, obj, val)
Definition groonga.h:2994
#define GRN_FLOAT_SET(ctx, obj, val)
Definition groonga.h:3039
#define GRN_OBJ_FIN(ctx, obj)
Definition groonga.h:999
#define GRN_FLOAT32_SET(ctx, obj, val)
Definition groonga.h:3034
#define GRN_UINT32_SET(ctx, obj, val)
Definition groonga.h:3014
#define GRN_INT32_SET(ctx, obj, val)
Definition groonga.h:3009
#define GRN_UINT64_SET(ctx, obj, val)
Definition groonga.h:3024
#define GRN_TIME_SET
Definition groonga.h:3044
#define GRN_INT8_PUT(ctx, obj, val)
Definition groonga.h:3262
#define GRN_INT16_SET(ctx, obj, val)
Definition groonga.h:2999
#define GRN_UINT64_PUT(ctx, obj, val)
Definition groonga.h:3297
#define GRN_INT32_VALUE(obj)
Definition groonga.h:3207
#define GRN_BFLOAT16_SET(ctx, obj, val)
Definition groonga.h:3029
struct _grn_obj grn_obj
The generic Groonga object type.
Definition groonga.h:310
#define GRN_UINT16_VALUE(obj)
Definition groonga.h:3206
@ GRN_DB_UINT8
Definition groonga.h:1110
@ GRN_DB_INT8
Definition groonga.h:1109
@ GRN_DB_TIME
Definition groonga.h:1118
@ GRN_DB_BFLOAT16
Definition groonga.h:1125
@ GRN_DB_UINT16
Definition groonga.h:1112
@ GRN_DB_INT32
Definition groonga.h:1113
@ GRN_DB_BOOL
Definition groonga.h:1108
@ GRN_DB_INT16
Definition groonga.h:1111
@ GRN_DB_FLOAT32
Definition groonga.h:1124
@ GRN_DB_UINT32
Definition groonga.h:1114
@ GRN_DB_UINT64
Definition groonga.h:1116
@ GRN_DB_INT64
Definition groonga.h:1115
@ GRN_DB_FLOAT
Definition groonga.h:1117
#define GRN_UINT32_PUT(ctx, obj, val)
Definition groonga.h:3287
#define GRN_UINT8_PUT(ctx, obj, val)
Definition groonga.h:3267
#define GRN_BOOL_PUT(ctx, obj, val)
Definition groonga.h:3257
#define GRN_TIME_PUT
Definition groonga.h:3317
#define GRN_BOOL_VALUE(obj)
Definition groonga.h:3202
#define GRN_FLOAT32_VALUE(obj)
Definition groonga.h:3212
#define GRN_TEXT_INIT(obj, flags)
Definition groonga.h:2853
#define GRN_INT64_SET(ctx, obj, val)
Definition groonga.h:3019
#define GRN_BFLOAT16_PUT(ctx, obj, val)
Definition groonga.h:3302
#define GRN_UINT16_SET(ctx, obj, val)
Definition groonga.h:3004
#define GRN_INT64_PUT(ctx, obj, val)
Definition groonga.h:3292
#define GRN_TEXT_LEN(obj)
Definition groonga.h:2890
#define GRN_FLOAT_PUT(ctx, obj, val)
Definition groonga.h:3312
grn_rc set(grn_ctx *ctx, grn_obj *bulk, NUMERIC value)
Definition bulk.hpp:117
grn_rc put(grn_ctx *ctx, grn_obj *bulk, NUMERIC value)
Definition bulk.hpp:179
TYPE get(grn_ctx *ctx, grn_obj *bulk, TYPE default_value)
Definition bulk.hpp:79
std::enable_if_t< std::is_integral_v< TYPE >, bool > is_zero(TYPE value)
Definition bulk.hpp:54
grn_rc rc
Definition groonga.h:352
#define GRN_TIME_USEC_PER_SEC
Definition time.h:44