aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
new file mode 100644
index 00000000000..f00d6b19d67
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Float16Field.java
@@ -0,0 +1,33 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.prelude.fastsearch;
+
+import com.yahoo.data.access.Inspector;
+import com.yahoo.search.result.NanNumber;
+
+/**
+ * A 16-bit float, represented as a (32-bit) Float in Java, as there is no 16-bit float support.
+ *
+ * @author bratseth
+ */
+public class Float16Field extends DocsumField {
+
+ static final double EMPTY_VALUE = Float.NaN;
+
+ public Float16Field(String name) {
+ super(name);
+ }
+
+ private Object convert(float value) {
+ if (Float.isNaN(value)) {
+ return NanNumber.NaN;
+ } else {
+ return Float.valueOf(value);
+ }
+ }
+
+ @Override
+ public Object convert(Inspector value) {
+ return convert((float)value.asDouble(EMPTY_VALUE));
+ }
+
+}