Add readFromNpyFile and writeToNpyFile for double data

Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: Icc023cbe6aa8843cc37d25e740bc6ce05bb7abb2
diff --git a/src/numpy_utils.cpp b/src/numpy_utils.cpp
index c770d45..123908a 100644
--- a/src/numpy_utils.cpp
+++ b/src/numpy_utils.cpp
@@ -46,6 +46,12 @@
     return readFromNpyFileCommon(filename, dtype_str, sizeof(float), elems, databuf, false);
 }
 
+NumpyUtilities::NPError NumpyUtilities::readFromNpyFile(const char* filename, const uint32_t elems, double* databuf)
+{
+    const char dtype_str[] = "'<f8'";
+    return readFromNpyFileCommon(filename, dtype_str, sizeof(double), elems, databuf, false);
+}
+
 NumpyUtilities::NPError
     NumpyUtilities::readFromNpyFile(const char* filename, const uint32_t elems, half_float::half* databuf)
 {
@@ -315,6 +321,20 @@
     return writeToNpyFileCommon(filename, dtype_str, sizeof(float), shape, databuf, false);
 }
 
+NumpyUtilities::NPError
+    NumpyUtilities::writeToNpyFile(const char* filename, const uint32_t elems, const double* databuf)
+{
+    std::vector<int32_t> shape = { (int32_t)elems };
+    return writeToNpyFile(filename, shape, databuf);
+}
+
+NumpyUtilities::NPError
+    NumpyUtilities::writeToNpyFile(const char* filename, const std::vector<int32_t>& shape, const double* databuf)
+{
+    const char dtype_str[] = "'<f8'";
+    return writeToNpyFileCommon(filename, dtype_str, sizeof(double), shape, databuf, false);
+}
+
 NumpyUtilities::NPError NumpyUtilities::writeToNpyFile(const char* filename,
                                                        const std::vector<int32_t>& shape,
                                                        const half_float::half* databuf)