[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3980 - gnuradio/branches/developers/eb/mb/pmt/src/lib,
eb <=