FULL data gen mode for FP16

Signed-off-by: evacha01 <evan.chandler@arm.com>
Change-Id: I81bb322132daf25328a40342edc62d8e1db9edd6
diff --git a/reference_model/src/generate/generate_full_range.cc b/reference_model/src/generate/generate_full_range.cc
new file mode 100644
index 0000000..d2a89da
--- /dev/null
+++ b/reference_model/src/generate/generate_full_range.cc
@@ -0,0 +1,59 @@
+// Copyright (c) 2024, ARM Limited.
+//
+//    Licensed under the Apache License, Version 2.0 (the "License");
+//    you may not use this file except in compliance with the License.
+//    You may obtain a copy of the License at
+//
+//         http://www.apache.org/licenses/LICENSE-2.0
+//
+//    Unless required by applicable law or agreed to in writing, software
+//    distributed under the License is distributed on an "AS IS" BASIS,
+//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//    See the License for the specific language governing permissions and
+//    limitations under the License.
+
+#include "generate_full_range.h"
+#include "half.hpp"
+
+namespace
+{
+
+template <typename DataType>
+bool generate(const TosaReference::GenerateConfig& cfg, DataType* data, size_t size)
+{
+    const TosaReference::FullRangeInfo& frinfo = cfg.fullRangeInfo;
+    DataType value                             = frinfo.startVal;
+
+    const auto T = TosaReference::numElementsFromShape(cfg.shape);
+    for (auto t = 0; t < T; ++t)
+    {
+        data[t] = value;
+        value++;
+    }
+    return true;
+}
+}    // namespace
+
+namespace TosaReference
+{
+bool generateFullRange(const GenerateConfig& cfg, void* data, size_t size)
+{
+    // Check we support the operator
+    if (cfg.opType == Op::Op_UNKNOWN)
+    {
+        WARNING("[Generator][PR] Unknown operator.");
+        return false;
+    }
+
+    switch (cfg.dataType)
+    {
+        case DType::DType_FP16: {
+            uint16_t* outData = reinterpret_cast<uint16_t*>(data);
+            return generate(cfg, outData, size);
+        }
+        default:
+            WARNING("[Generator][PR] Unsupported type.");
+            return false;
+    }
+}
+}    // namespace TosaReference
\ No newline at end of file