commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r3980 - gnuradio/branches/developers/eb/mb/pmt/src/lib


From: eb
Subject: [Commit-gnuradio] r3980 - gnuradio/branches/developers/eb/mb/pmt/src/lib
Date: Mon, 13 Nov 2006 17:11:32 -0700 (MST)

Author: eb
Date: 2006-11-13 17:11:32 -0700 (Mon, 13 Nov 2006)
New Revision: 3980

Modified:
   gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.cc
   gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.h
Log:
added memq, memv, member and subsetp

Modified: gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.cc
===================================================================
--- gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.cc       2006-11-13 
22:52:03 UTC (rev 3979)
+++ gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.cc       2006-11-14 
00:11:32 UTC (rev 3980)
@@ -796,3 +796,48 @@
   }
   return list;
 }
+
+pmt_t
+pmt_memq(pmt_t obj, pmt_t list)
+{
+  while (pmt_is_pair(list)){
+    if (pmt_eq(obj, pmt_car(list)))
+      return list;
+    list = pmt_cdr(list);
+  }
+  return PMT_BOOL_F;
+}
+
+pmt_t
+pmt_memv(pmt_t obj, pmt_t list)
+{
+  while (pmt_is_pair(list)){
+    if (pmt_eqv(obj, pmt_car(list)))
+      return list;
+    list = pmt_cdr(list);
+  }
+  return PMT_BOOL_F;
+}
+
+pmt_t
+pmt_member(pmt_t obj, pmt_t list)
+{
+  while (pmt_is_pair(list)){
+    if (pmt_equal(obj, pmt_car(list)))
+      return list;
+    list = pmt_cdr(list);
+  }
+  return PMT_BOOL_F;
+}
+
+pmt_t
+pmt_subsetp(pmt_t list1, pmt_t list2)
+{
+  while (pmt_is_pair(list1)){
+    pmt_t p = pmt_car(list1);
+    if (pmt_is_false(pmt_memv(p, list2)))
+      return PMT_BOOL_F;
+    list1 = pmt_cdr(list1);
+  }
+  return PMT_BOOL_T;
+}

Modified: gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.h
===================================================================
--- gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.h        2006-11-13 
22:52:03 UTC (rev 3979)
+++ gnuradio/branches/developers/eb/mb/pmt/src/lib/pmt.h        2006-11-14 
00:11:32 UTC (rev 3980)
@@ -525,6 +525,33 @@
  */
 pmt_t pmt_nthcdr(size_t n, pmt_t list);
 
+/*!
+ * \brief Return the first sublist of \p list whose car is \p obj.
+ * If \p obj does not occur in \p list, then #f is returned.
+ * pmt_memq use pmt_eq to compare \p obj with the elements of \p list.
+ */
+pmt_t pmt_memq(pmt_t obj, pmt_t list);
+
+/*!
+ * \brief Return the first sublist of \p list whose car is \p obj.
+ * If \p obj does not occur in \p list, then #f is returned.
+ * pmt_memv use pmt_eqv to compare \p obj with the elements of \p list.
+ */
+pmt_t pmt_memv(pmt_t obj, pmt_t list);
+
+/*!
+ * \brief Return the first sublist of \p list whose car is \p obj.
+ * If \p obj does not occur in \p list, then #f is returned.
+ * pmt_member use pmt_equal to compare \p obj with the elements of \p list.
+ */
+pmt_t pmt_member(pmt_t obj, pmt_t list);
+
+/*!
+ * \brief Return #t if every element of \p list1 appears in \p list2, and #f 
otherwise.
+ * Comparisons are done with pmt_eqv.
+ */
+pmt_t pmt_subsetp(pmt_t list1, pmt_t list2);
+
 /*
  * ------------------------------------------------------------------------
  *                          read / write





reply via email to

[Prev in Thread] Current Thread [Next in Thread]