From 09dd6f8c5a942640bc7ed1ba40a54ad1cb008cf9 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Mon, 13 Jan 2020 13:35:44 +0100
Subject: [PATCH] Added largest() and smallest() for type t-nat_natural_arr.

---
 libraries/base/common/src/vhdl/common_pkg.vhd | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/libraries/base/common/src/vhdl/common_pkg.vhd b/libraries/base/common/src/vhdl/common_pkg.vhd
index 32995bba78..4023ea9136 100644
--- a/libraries/base/common/src/vhdl/common_pkg.vhd
+++ b/libraries/base/common/src/vhdl/common_pkg.vhd
@@ -212,9 +212,11 @@ PACKAGE common_pkg IS
   FUNCTION smallest(n, m    : INTEGER)       RETURN INTEGER;
   FUNCTION smallest(n, m, l : INTEGER)       RETURN INTEGER;
   FUNCTION smallest(n       : t_natural_arr) RETURN NATURAL;
+  FUNCTION smallest(n       : t_nat_natural_arr) RETURN NATURAL;
 
   FUNCTION largest(n, m : INTEGER)       RETURN INTEGER;
   FUNCTION largest(n    : t_natural_arr) RETURN NATURAL;
+  FUNCTION largest(n    : t_nat_natural_arr) RETURN NATURAL;
   
   FUNCTION func_sum(    n : t_natural_arr)     RETURN NATURAL;      -- sum     of all elements in array
   FUNCTION func_sum(    n : t_nat_natural_arr) RETURN NATURAL;
@@ -793,6 +795,17 @@ PACKAGE BODY common_pkg IS
     RETURN m;
   END;
   
+  FUNCTION smallest(n : t_nat_natural_arr) RETURN NATURAL IS
+    VARIABLE m : NATURAL := 0;
+  BEGIN
+    FOR I IN n'RANGE LOOP
+      IF n(I) < m THEN
+        m := n(I);
+      END IF;
+    END LOOP;
+    RETURN m;
+  END;
+  
   FUNCTION largest(n, m : INTEGER) RETURN INTEGER IS
   BEGIN
     IF n > m THEN
@@ -813,6 +826,17 @@ PACKAGE BODY common_pkg IS
     RETURN m;
   END;
   
+  FUNCTION largest(n : t_nat_natural_arr) RETURN NATURAL IS
+    VARIABLE m : NATURAL := 0;
+  BEGIN
+    FOR I IN n'RANGE LOOP
+      IF n(I) > m THEN
+        m := n(I);
+      END IF;
+    END LOOP;
+    RETURN m;
+  END;
+  
   FUNCTION func_sum(n : t_natural_arr) RETURN NATURAL IS
     VARIABLE vS : NATURAL;
   BEGIN
-- 
GitLab