summaryrefslogtreecommitdiff
path: root/gruel
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-01-02 13:01:53 -0500
committerTom Rondeau <trondeau@vt.edu>2013-01-02 13:01:53 -0500
commit1114f81d59abd87cbb0c10d88ab243935ba9e35f (patch)
treed1bfd000c2292af12e5aa96d764ee85c29d9f746 /gruel
parent69f57364c5b8fc575b6a956468025da37d32b1a6 (diff)
parentaa4245a69bf6954bf45c51aa7ffec9d049e09edc (diff)
Merge branch 'pmt_rename' into next
Conflicts: gnuradio-core/src/lib/io/gr_pdu.cc gruel/src/lib/pmt/pmt.cc gruel/src/lib/pmt/qa_pmt_prims.cc gruel/src/lib/pmt/unv_template.cc.t gruel/src/swig/pmt_swig.i
Diffstat (limited to 'gruel')
-rw-r--r--gruel/src/include/gruel/msg_passing.h4
-rw-r--r--gruel/src/include/gruel/pmt.h498
-rw-r--r--gruel/src/include/gruel/pmt_sugar.h40
-rw-r--r--gruel/src/lib/pmt/pmt.cc533
-rw-r--r--gruel/src/lib/pmt/pmt_io.cc88
-rw-r--r--gruel/src/lib/pmt/pmt_serialize.cc254
-rw-r--r--gruel/src/lib/pmt/qa_pmt_prims.cc644
-rw-r--r--gruel/src/lib/pmt/unv_qa_template.cc.t24
-rw-r--r--gruel/src/lib/pmt/unv_template.cc.t32
-rwxr-xr-xgruel/src/python/qa_pmt.py98
-rw-r--r--gruel/src/swig/CMakeLists.txt2
-rw-r--r--gruel/src/swig/pmt_swig.i933
12 files changed, 1341 insertions, 1809 deletions
diff --git a/gruel/src/include/gruel/msg_passing.h b/gruel/src/include/gruel/msg_passing.h
index 25f30118f7..572507e0f3 100644
--- a/gruel/src/include/gruel/msg_passing.h
+++ b/gruel/src/include/gruel/msg_passing.h
@@ -95,7 +95,7 @@ namespace gruel {
/*!
* \brief send message to msg_accepter
*
- * \param accepter is the target of the send. precond: pmt_is_msg_accepter(accepter)
+ * \param accepter is the target of the send. precond: pmt::is_msg_accepter(accepter)
* \param which_port A pmt symbol describing the port by name.
* \param msg is the message to send. It's usually a pmt tuple.
*
@@ -108,7 +108,7 @@ namespace gruel {
static inline pmt::pmt_t
send(pmt::pmt_t accepter, const pmt::pmt_t &which_port, const pmt::pmt_t &msg)
{
- return send(pmt_msg_accepter_ref(accepter), which_port, msg);
+ return send(pmt::msg_accepter_ref(accepter), which_port, msg);
}
} /* namespace gruel */
diff --git a/gruel/src/include/gruel/pmt.h b/gruel/src/include/gruel/pmt.h
index 383a1d44d0..b4c51ab927 100644
--- a/gruel/src/include/gruel/pmt.h
+++ b/gruel/src/include/gruel/pmt.h
@@ -62,28 +62,28 @@ typedef boost::intrusive_ptr<pmt_base> pmt_t;
extern GRUEL_API void intrusive_ptr_add_ref(pmt_base*);
extern GRUEL_API void intrusive_ptr_release(pmt_base*);
-class GRUEL_API pmt_exception : public std::logic_error
+class GRUEL_API exception : public std::logic_error
{
public:
- pmt_exception(const std::string &msg, pmt_t obj);
+ exception(const std::string &msg, pmt_t obj);
};
-class GRUEL_API pmt_wrong_type : public pmt_exception
+class GRUEL_API wrong_type : public exception
{
public:
- pmt_wrong_type(const std::string &msg, pmt_t obj);
+ wrong_type(const std::string &msg, pmt_t obj);
};
-class GRUEL_API pmt_out_of_range : public pmt_exception
+class GRUEL_API out_of_range : public exception
{
public:
- pmt_out_of_range(const std::string &msg, pmt_t obj);
+ out_of_range(const std::string &msg, pmt_t obj);
};
-class GRUEL_API pmt_notimplemented : public pmt_exception
+class GRUEL_API notimplemented : public exception
{
public:
- pmt_notimplemented(const std::string &msg, pmt_t obj);
+ notimplemented(const std::string &msg, pmt_t obj);
};
/*
@@ -98,20 +98,20 @@ extern GRUEL_API const pmt_t PMT_T; //< \#t : boolean true constant
extern GRUEL_API const pmt_t PMT_F; //< \#f : boolean false constant
//! Return true if obj is \#t or \#f, else return false.
-GRUEL_API bool pmt_is_bool(pmt_t obj);
+GRUEL_API bool is_bool(pmt_t obj);
//! Return false if obj is \#f, else return true.
-GRUEL_API bool pmt_is_true(pmt_t obj);
+GRUEL_API bool is_true(pmt_t obj);
//! Return true if obj is \#f, else return true.
-GRUEL_API bool pmt_is_false(pmt_t obj);
+GRUEL_API bool is_false(pmt_t obj);
//! Return \#f is val is false, else return \#t.
-GRUEL_API pmt_t pmt_from_bool(bool val);
+GRUEL_API pmt_t from_bool(bool val);
-//! Return true if val is PMT_T, return false when val is PMT_F,
+//! Return true if val is pmt::True, return false when val is pmt::PMT_F,
// else raise wrong_type exception.
-GRUEL_API bool pmt_to_bool(pmt_t val);
+GRUEL_API bool to_bool(pmt_t val);
/*
* ------------------------------------------------------------------------
@@ -120,20 +120,20 @@ GRUEL_API bool pmt_to_bool(pmt_t val);
*/
//! Return true if obj is a symbol, else false.
-GRUEL_API bool pmt_is_symbol(const pmt_t& obj);
+GRUEL_API bool is_symbol(const pmt_t& obj);
//! Return the symbol whose name is \p s.
-GRUEL_API pmt_t pmt_string_to_symbol(const std::string &s);
+GRUEL_API pmt_t string_to_symbol(const std::string &s);
//! Alias for pmt_string_to_symbol
-GRUEL_API pmt_t pmt_intern(const std::string &s);
+GRUEL_API pmt_t intern(const std::string &s);
/*!
* If \p is a symbol, return the name of the symbol as a string.
* Otherwise, raise the wrong_type exception.
*/
-GRUEL_API const std::string pmt_symbol_to_string(const pmt_t& sym);
+GRUEL_API const std::string symbol_to_string(const pmt_t& sym);
/*
* ------------------------------------------------------------------------
@@ -142,7 +142,7 @@ GRUEL_API const std::string pmt_symbol_to_string(const pmt_t& sym);
*/
//! Return true if obj is any kind of number, else false.
-GRUEL_API bool pmt_is_number(pmt_t obj);
+GRUEL_API bool is_number(pmt_t obj);
/*
* ------------------------------------------------------------------------
@@ -151,10 +151,10 @@ GRUEL_API bool pmt_is_number(pmt_t obj);
*/
//! Return true if \p x is an integer number, else false
-GRUEL_API bool pmt_is_integer(pmt_t x);
+GRUEL_API bool is_integer(pmt_t x);
//! Return the pmt value that represents the integer \p x.
-GRUEL_API pmt_t pmt_from_long(long x);
+GRUEL_API pmt_t from_long(long x);
/*!
* \brief Convert pmt to long if possible.
@@ -163,7 +163,7 @@ GRUEL_API pmt_t pmt_from_long(long x);
* return that integer. Else raise an exception, either wrong_type
* when x is not an exact integer, or out_of_range when it doesn't fit.
*/
-GRUEL_API long pmt_to_long(pmt_t x);
+GRUEL_API long to_long(pmt_t x);
/*
* ------------------------------------------------------------------------
@@ -172,10 +172,10 @@ GRUEL_API long pmt_to_long(pmt_t x);
*/
//! Return true if \p x is an uint64 number, else false
-GRUEL_API bool pmt_is_uint64(pmt_t x);
+GRUEL_API bool is_uint64(pmt_t x);
//! Return the pmt value that represents the uint64 \p x.
-GRUEL_API pmt_t pmt_from_uint64(uint64_t x);
+GRUEL_API pmt_t from_uint64(uint64_t x);
/*!
* \brief Convert pmt to uint64 if possible.
@@ -184,7 +184,7 @@ GRUEL_API pmt_t pmt_from_uint64(uint64_t x);
* return that uint64. Else raise an exception, either wrong_type
* when x is not an exact uint64, or out_of_range when it doesn't fit.
*/
-GRUEL_API uint64_t pmt_to_uint64(pmt_t x);
+GRUEL_API uint64_t to_uint64(pmt_t x);
/*
* ------------------------------------------------------------------------
@@ -195,10 +195,10 @@ GRUEL_API uint64_t pmt_to_uint64(pmt_t x);
/*
* \brief Return true if \p obj is a real number, else false.
*/
-GRUEL_API bool pmt_is_real(pmt_t obj);
+GRUEL_API bool is_real(pmt_t obj);
//! Return the pmt value that represents double \p x.
-GRUEL_API pmt_t pmt_from_double(double x);
+GRUEL_API pmt_t from_double(double x);
/*!
* \brief Convert pmt to double if possible.
@@ -207,7 +207,7 @@ GRUEL_API pmt_t pmt_from_double(double x);
* as a double. The argument \p val must be a real or integer, otherwise
* a wrong_type exception is raised.
*/
-GRUEL_API double pmt_to_double(pmt_t x);
+GRUEL_API double to_double(pmt_t x);
/*
* ------------------------------------------------------------------------
@@ -218,10 +218,16 @@ GRUEL_API double pmt_to_double(pmt_t x);
/*!
* \brief return true if \p obj is a complex number, false otherwise.
*/
-GRUEL_API bool pmt_is_complex(pmt_t obj);
+GRUEL_API bool is_complex(pmt_t obj);
//! Return a complex number constructed of the given real and imaginary parts.
-GRUEL_API pmt_t pmt_make_rectangular(double re, double im);
+GRUEL_API pmt_t make_rectangular(double re, double im);
+
+//! Return a complex number constructed of the given real and imaginary parts.
+GRUEL_API pmt_t from_complex(double re, double im);
+
+//! Return a complex number constructed of the given a complex number.
+GRUEL_API pmt_t from_complex(const std::complex<double> &z);
//! Return a complex number constructed of the given real and imaginary parts.
GRUEL_API pmt_t pmt_from_complex(double re, double im);
@@ -233,7 +239,7 @@ GRUEL_API pmt_t pmt_from_complex(const std::complex<double> &z);
* If \p z is complex, real or integer, return the closest complex<double>.
* Otherwise, raise the wrong_type exception.
*/
-GRUEL_API std::complex<double> pmt_to_complex(pmt_t z);
+GRUEL_API std::complex<double> to_complex(pmt_t z);
/*
* ------------------------------------------------------------------------
@@ -244,32 +250,32 @@ GRUEL_API std::complex<double> pmt_to_complex(pmt_t z);
extern GRUEL_API const pmt_t PMT_NIL; //< the empty list
//! Return true if \p x is the empty list, otherwise return false.
-GRUEL_API bool pmt_is_null(const pmt_t& x);
+GRUEL_API bool is_null(const pmt_t& x);
//! Return true if \p obj is a pair, else false.
-GRUEL_API bool pmt_is_pair(const pmt_t& obj);
+GRUEL_API bool is_pair(const pmt_t& obj);
//! Return a newly allocated pair whose car is \p x and whose cdr is \p y.
-GRUEL_API pmt_t pmt_cons(const pmt_t& x, const pmt_t& y);
+GRUEL_API pmt_t cons(const pmt_t& x, const pmt_t& y);
//! If \p pair is a pair, return the car of the \p pair, otherwise raise wrong_type.
-GRUEL_API pmt_t pmt_car(const pmt_t& pair);
+GRUEL_API pmt_t car(const pmt_t& pair);
//! If \p pair is a pair, return the cdr of the \p pair, otherwise raise wrong_type.
-GRUEL_API pmt_t pmt_cdr(const pmt_t& pair);
+GRUEL_API pmt_t cdr(const pmt_t& pair);
//! Stores \p value in the car field of \p pair.
-GRUEL_API void pmt_set_car(pmt_t pair, pmt_t value);
+GRUEL_API void set_car(pmt_t pair, pmt_t value);
//! Stores \p value in the cdr field of \p pair.
-GRUEL_API void pmt_set_cdr(pmt_t pair, pmt_t value);
+GRUEL_API void set_cdr(pmt_t pair, pmt_t value);
-GRUEL_API pmt_t pmt_caar(pmt_t pair);
-GRUEL_API pmt_t pmt_cadr(pmt_t pair);
-GRUEL_API pmt_t pmt_cdar(pmt_t pair);
-GRUEL_API pmt_t pmt_cddr(pmt_t pair);
-GRUEL_API pmt_t pmt_caddr(pmt_t pair);
-GRUEL_API pmt_t pmt_cadddr(pmt_t pair);
+GRUEL_API pmt_t caar(pmt_t pair);
+GRUEL_API pmt_t cadr(pmt_t pair);
+GRUEL_API pmt_t cdar(pmt_t pair);
+GRUEL_API pmt_t cddr(pmt_t pair);
+GRUEL_API pmt_t caddr(pmt_t pair);
+GRUEL_API pmt_t cadddr(pmt_t pair);
/*
* ------------------------------------------------------------------------
@@ -282,30 +288,30 @@ GRUEL_API pmt_t pmt_cadddr(pmt_t pair);
*/
//! Return true if \p x is a tuple, othewise false.
-GRUEL_API bool pmt_is_tuple(pmt_t x);
+GRUEL_API bool is_tuple(pmt_t x);
-GRUEL_API pmt_t pmt_make_tuple();
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8);
-GRUEL_API pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9);
+GRUEL_API pmt_t make_tuple();
+GRUEL_API pmt_t make_tuple(const pmt_t &e0);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8);
+GRUEL_API pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9);
/*!
* If \p x is a vector or proper list, return a tuple containing the elements of x
*/
-GRUEL_API pmt_t pmt_to_tuple(const pmt_t &x);
+GRUEL_API pmt_t to_tuple(const pmt_t &x);
/*!
* Return the contents of position \p k of \p tuple.
* \p k must be a valid index of \p tuple.
*/
-GRUEL_API pmt_t pmt_tuple_ref(const pmt_t &tuple, size_t k);
+GRUEL_API pmt_t tuple_ref(const pmt_t &tuple, size_t k);
/*
* ------------------------------------------------------------------------
@@ -316,22 +322,22 @@ GRUEL_API pmt_t pmt_tuple_ref(const pmt_t &tuple, size_t k);
*/
//! Return true if \p x is a vector, othewise false.
-GRUEL_API bool pmt_is_vector(pmt_t x);
+GRUEL_API bool is_vector(pmt_t x);
//! Make a vector of length \p k, with initial values set to \p fill
-GRUEL_API pmt_t pmt_make_vector(size_t k, pmt_t fill);
+GRUEL_API pmt_t make_vector(size_t k, pmt_t fill);
/*!
* Return the contents of position \p k of \p vector.
* \p k must be a valid index of \p vector.
*/
-GRUEL_API pmt_t pmt_vector_ref(pmt_t vector, size_t k);
+GRUEL_API pmt_t vector_ref(pmt_t vector, size_t k);
//! Store \p obj in position \p k.
-GRUEL_API void pmt_vector_set(pmt_t vector, size_t k, pmt_t obj);
+GRUEL_API void vector_set(pmt_t vector, size_t k, pmt_t obj);
//! Store \p fill in every position of \p vector
-GRUEL_API void pmt_vector_fill(pmt_t vector, pmt_t fill);
+GRUEL_API void vector_fill(pmt_t vector, pmt_t fill);
/*
* ------------------------------------------------------------------------
@@ -342,7 +348,7 @@ GRUEL_API void pmt_vector_fill(pmt_t vector, pmt_t fill);
*/
//! Return true if \p x is a blob, othewise false.
-GRUEL_API bool pmt_is_blob(pmt_t x);
+GRUEL_API bool is_blob(pmt_t x);
/*!
* \brief Make a blob given a pointer and length in bytes
@@ -352,13 +358,13 @@ GRUEL_API bool pmt_is_blob(pmt_t x);
*
* The data is copied into the blob.
*/
-GRUEL_API pmt_t pmt_make_blob(const void *buf, size_t len);
+GRUEL_API pmt_t make_blob(const void *buf, size_t len);
//! Return a pointer to the blob's data
-GRUEL_API const void *pmt_blob_data(pmt_t blob);
+GRUEL_API const void *blob_data(pmt_t blob);
//! Return the blob's length in bytes
-GRUEL_API size_t pmt_blob_length(pmt_t blob);
+GRUEL_API size_t blob_length(pmt_t blob);
/*!
* <pre>
@@ -390,101 +396,115 @@ GRUEL_API size_t pmt_blob_length(pmt_t blob);
*/
//! true if \p x is any kind of uniform numeric vector
-GRUEL_API bool pmt_is_uniform_vector(pmt_t x);
-
-GRUEL_API bool pmt_is_u8vector(pmt_t x);
-GRUEL_API bool pmt_is_s8vector(pmt_t x);
-GRUEL_API bool pmt_is_u16vector(pmt_t x);
-GRUEL_API bool pmt_is_s16vector(pmt_t x);
-GRUEL_API bool pmt_is_u32vector(pmt_t x);
-GRUEL_API bool pmt_is_s32vector(pmt_t x);
-GRUEL_API bool pmt_is_u64vector(pmt_t x);
-GRUEL_API bool pmt_is_s64vector(pmt_t x);
-GRUEL_API bool pmt_is_f32vector(pmt_t x);
-GRUEL_API bool pmt_is_f64vector(pmt_t x);
-GRUEL_API bool pmt_is_c32vector(pmt_t x);
-GRUEL_API bool pmt_is_c64vector(pmt_t x);
-
-GRUEL_API pmt_t pmt_make_u8vector(size_t k, uint8_t fill);
-GRUEL_API pmt_t pmt_make_s8vector(size_t k, int8_t fill);
-GRUEL_API pmt_t pmt_make_u16vector(size_t k, uint16_t fill);
-GRUEL_API pmt_t pmt_make_s16vector(size_t k, int16_t fill);
-GRUEL_API pmt_t pmt_make_u32vector(size_t k, uint32_t fill);
-GRUEL_API pmt_t pmt_make_s32vector(size_t k, int32_t fill);
-GRUEL_API pmt_t pmt_make_u64vector(size_t k, uint64_t fill);
-GRUEL_API pmt_t pmt_make_s64vector(size_t k, int64_t fill);
-GRUEL_API pmt_t pmt_make_f32vector(size_t k, float fill);
-GRUEL_API pmt_t pmt_make_f64vector(size_t k, double fill);
-GRUEL_API pmt_t pmt_make_c32vector(size_t k, std::complex<float> fill);
-GRUEL_API pmt_t pmt_make_c64vector(size_t k, std::complex<double> fill);
-
-GRUEL_API pmt_t pmt_init_u8vector(size_t k, const uint8_t *data);
-GRUEL_API pmt_t pmt_init_u8vector(size_t k, const std::vector<uint8_t> &data);
-GRUEL_API pmt_t pmt_init_s8vector(size_t k, const int8_t *data);
-GRUEL_API pmt_t pmt_init_s8vector(size_t k, const std::vector<int8_t> &data);
-GRUEL_API pmt_t pmt_init_u16vector(size_t k, const uint16_t *data);
-GRUEL_API pmt_t pmt_init_u16vector(size_t k, const std::vector<uint16_t> &data);
-GRUEL_API pmt_t pmt_init_s16vector(size_t k, const int16_t *data);
-GRUEL_API pmt_t pmt_init_s16vector(size_t k, const std::vector<int16_t> &data);
-GRUEL_API pmt_t pmt_init_u32vector(size_t k, const uint32_t *data);
-GRUEL_API pmt_t pmt_init_u32vector(size_t k, const std::vector<uint32_t> &data);
-GRUEL_API pmt_t pmt_init_s32vector(size_t k, const int32_t *data);
-GRUEL_API pmt_t pmt_init_s32vector(size_t k, const std::vector<int32_t> &data);
-GRUEL_API pmt_t pmt_init_u64vector(size_t k, const uint64_t *data);
-GRUEL_API pmt_t pmt_init_u64vector(size_t k, const std::vector<uint64_t> &data);
-GRUEL_API pmt_t pmt_init_s64vector(size_t k, const int64_t *data);
-GRUEL_API pmt_t pmt_init_s64vector(size_t k, const std::vector<int64_t> &data);
-GRUEL_API pmt_t pmt_init_f32vector(size_t k, const float *data);
-GRUEL_API pmt_t pmt_init_f32vector(size_t k, const std::vector<float> &data);
-GRUEL_API pmt_t pmt_init_f64vector(size_t k, const double *data);
-GRUEL_API pmt_t pmt_init_f64vector(size_t k, const std::vector<double> &data);
-GRUEL_API pmt_t pmt_init_c32vector(size_t k, const std::complex<float> *data);
-GRUEL_API pmt_t pmt_init_c32vector(size_t k, const std::vector<std::complex<float> > &data);
-GRUEL_API pmt_t pmt_init_c64vector(size_t k, const std::complex<double> *data);
-GRUEL_API pmt_t pmt_init_c64vector(size_t k, const std::vector<std::complex<double> > &data);
-
-GRUEL_API uint8_t pmt_u8vector_ref(pmt_t v, size_t k);
-GRUEL_API int8_t pmt_s8vector_ref(pmt_t v, size_t k);
-GRUEL_API uint16_t pmt_u16vector_ref(pmt_t v, size_t k);
-GRUEL_API int16_t pmt_s16vector_ref(pmt_t v, size_t k);
-GRUEL_API uint32_t pmt_u32vector_ref(pmt_t v, size_t k);
-GRUEL_API int32_t pmt_s32vector_ref(pmt_t v, size_t k);
-GRUEL_API uint64_t pmt_u64vector_ref(pmt_t v, size_t k);
-GRUEL_API int64_t pmt_s64vector_ref(pmt_t v, size_t k);
-GRUEL_API float pmt_f32vector_ref(pmt_t v, size_t k);
-GRUEL_API double pmt_f64vector_ref(pmt_t v, size_t k);
-GRUEL_API std::complex<float> pmt_c32vector_ref(pmt_t v, size_t k);
-GRUEL_API std::complex<double> pmt_c64vector_ref(pmt_t v, size_t k);
-
-GRUEL_API void pmt_u8vector_set(pmt_t v, size_t k, uint8_t x); //< v[k] = x
-GRUEL_API void pmt_s8vector_set(pmt_t v, size_t k, int8_t x);
-GRUEL_API void pmt_u16vector_set(pmt_t v, size_t k, uint16_t x);
-GRUEL_API void pmt_s16vector_set(pmt_t v, size_t k, int16_t x);
-GRUEL_API void pmt_u32vector_set(pmt_t v, size_t k, uint32_t x);
-GRUEL_API void pmt_s32vector_set(pmt_t v, size_t k, int32_t x);
-GRUEL_API void pmt_u64vector_set(pmt_t v, size_t k, uint64_t x);
-GRUEL_API void pmt_s64vector_set(pmt_t v, size_t k, int64_t x);
-GRUEL_API void pmt_f32vector_set(pmt_t v, size_t k, float x);
-GRUEL_API void pmt_f64vector_set(pmt_t v, size_t k, double x);
-GRUEL_API void pmt_c32vector_set(pmt_t v, size_t k, std::complex<float> x);
-GRUEL_API void pmt_c64vector_set(pmt_t v, size_t k, std::complex<double> x);
+GRUEL_API bool is_uniform_vector(pmt_t x);
+
+GRUEL_API bool is_u8vector(pmt_t x);
+GRUEL_API bool is_s8vector(pmt_t x);
+GRUEL_API bool is_u16vector(pmt_t x);
+GRUEL_API bool is_s16vector(pmt_t x);
+GRUEL_API bool is_u32vector(pmt_t x);
+GRUEL_API bool is_s32vector(pmt_t x);
+GRUEL_API bool is_u64vector(pmt_t x);
+GRUEL_API bool is_s64vector(pmt_t x);
+GRUEL_API bool is_f32vector(pmt_t x);
+GRUEL_API bool is_f64vector(pmt_t x);
+GRUEL_API bool is_c32vector(pmt_t x);
+GRUEL_API bool is_c64vector(pmt_t x);
+
+GRUEL_API pmt_t make_u8vector(size_t k, uint8_t fill);
+GRUEL_API pmt_t make_s8vector(size_t k, int8_t fill);
+GRUEL_API pmt_t make_u16vector(size_t k, uint16_t fill);
+GRUEL_API pmt_t make_s16vector(size_t k, int16_t fill);
+GRUEL_API pmt_t make_u32vector(size_t k, uint32_t fill);
+GRUEL_API pmt_t make_s32vector(size_t k, int32_t fill);
+GRUEL_API pmt_t make_u64vector(size_t k, uint64_t fill);
+GRUEL_API pmt_t make_s64vector(size_t k, int64_t fill);
+GRUEL_API pmt_t make_f32vector(size_t k, float fill);
+GRUEL_API pmt_t make_f64vector(size_t k, double fill);
+GRUEL_API pmt_t make_c32vector(size_t k, std::complex<float> fill);
+GRUEL_API pmt_t make_c64vector(size_t k, std::complex<double> fill);
+
+GRUEL_API pmt_t init_u8vector(size_t k, const uint8_t *data);
+GRUEL_API pmt_t init_u8vector(size_t k, const std::vector<uint8_t> &data);
+GRUEL_API pmt_t init_s8vector(size_t k, const int8_t *data);
+GRUEL_API pmt_t init_s8vector(size_t k, const std::vector<int8_t> &data);
+GRUEL_API pmt_t init_u16vector(size_t k, const uint16_t *data);
+GRUEL_API pmt_t init_u16vector(size_t k, const std::vector<uint16_t> &data);
+GRUEL_API pmt_t init_s16vector(size_t k, const int16_t *data);
+GRUEL_API pmt_t init_s16vector(size_t k, const std::vector<int16_t> &data);
+GRUEL_API pmt_t init_u32vector(size_t k, const uint32_t *data);
+GRUEL_API pmt_t init_u32vector(size_t k, const std::vector<uint32_t> &data);
+GRUEL_API pmt_t init_s32vector(size_t k, const int32_t *data);
+GRUEL_API pmt_t init_s32vector(size_t k, const std::vector<int32_t> &data);
+GRUEL_API pmt_t init_u64vector(size_t k, const uint64_t *data);
+GRUEL_API pmt_t init_u64vector(size_t k, const std::vector<uint64_t> &data);
+GRUEL_API pmt_t init_s64vector(size_t k, const int64_t *data);
+GRUEL_API pmt_t init_s64vector(size_t k, const std::vector<int64_t> &data);
+GRUEL_API pmt_t init_f32vector(size_t k, const float *data);
+GRUEL_API pmt_t init_f32vector(size_t k, const std::vector<float> &data);
+GRUEL_API pmt_t init_f64vector(size_t k, const double *data);
+GRUEL_API pmt_t init_f64vector(size_t k, const std::vector<double> &data);
+GRUEL_API pmt_t init_c32vector(size_t k, const std::complex<float> *data);
+GRUEL_API pmt_t init_c32vector(size_t k, const std::vector<std::complex<float> > &data);
+GRUEL_API pmt_t init_c64vector(size_t k, const std::complex<double> *data);
+GRUEL_API pmt_t init_c64vector(size_t k, const std::vector<std::complex<double> > &data);
+
+GRUEL_API uint8_t u8vector_ref(pmt_t v, size_t k);
+GRUEL_API int8_t s8vector_ref(pmt_t v, size_t k);
+GRUEL_API uint16_t u16vector_ref(pmt_t v, size_t k);
+GRUEL_API int16_t s16vector_ref(pmt_t v, size_t k);
+GRUEL_API uint32_t u32vector_ref(pmt_t v, size_t k);
+GRUEL_API int32_t s32vector_ref(pmt_t v, size_t k);
+GRUEL_API uint64_t u64vector_ref(pmt_t v, size_t k);
+GRUEL_API int64_t s64vector_ref(pmt_t v, size_t k);
+GRUEL_API float f32vector_ref(pmt_t v, size_t k);
+GRUEL_API double f64vector_ref(pmt_t v, size_t k);
+GRUEL_API std::complex<float> c32vector_ref(pmt_t v, size_t k);
+GRUEL_API std::complex<double> c64vector_ref(pmt_t v, size_t k);
+
+GRUEL_API void u8vector_set(pmt_t v, size_t k, uint8_t x); //< v[k] = x
+GRUEL_API void s8vector_set(pmt_t v, size_t k, int8_t x);
+GRUEL_API void u16vector_set(pmt_t v, size_t k, uint16_t x);
+GRUEL_API void s16vector_set(pmt_t v, size_t k, int16_t x);
+GRUEL_API void u32vector_set(pmt_t v, size_t k, uint32_t x);
+GRUEL_API void s32vector_set(pmt_t v, size_t k, int32_t x);
+GRUEL_API void u64vector_set(pmt_t v, size_t k, uint64_t x);
+GRUEL_API void s64vector_set(pmt_t v, size_t k, int64_t x);
+GRUEL_API void f32vector_set(pmt_t v, size_t k, float x);
+GRUEL_API void f64vector_set(pmt_t v, size_t k, double x);
+GRUEL_API void c32vector_set(pmt_t v, size_t k, std::complex<float> x);
+GRUEL_API void c64vector_set(pmt_t v, size_t k, std::complex<double> x);
// Return const pointers to the elements
-GRUEL_API const void *pmt_uniform_vector_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
-
-GRUEL_API const uint8_t *pmt_u8vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const int8_t *pmt_s8vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const uint16_t *pmt_u16vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const int16_t *pmt_s16vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const uint32_t *pmt_u32vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const int32_t *pmt_s32vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const uint64_t *pmt_u64vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const int64_t *pmt_s64vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const float *pmt_f32vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const double *pmt_f64vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const std::complex<float> *pmt_c32vector_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API const std::complex<double> *pmt_c64vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const void *uniform_vector_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
+
+GRUEL_API const uint8_t *u8vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const int8_t *s8vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const uint16_t *u16vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const int16_t *s16vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const uint32_t *u32vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const int32_t *s32vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const uint64_t *u64vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const int64_t *s64vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const float *f32vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const double *f64vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const std::complex<float> *c32vector_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API const std::complex<double> *c64vector_elements(pmt_t v, size_t &len); //< len is in elements
+
+// len is in elements
+GRUEL_API const std::vector<uint8_t> u8vector_elements(pmt_t v);
+GRUEL_API const std::vector<int8_t> s8vector_elements(pmt_t v);
+GRUEL_API const std::vector<uint16_t> u16vector_elements(pmt_t v);
+GRUEL_API const std::vector<int16_t> s16vector_elements(pmt_t v);
+GRUEL_API const std::vector<uint32_t> u32vector_elements(pmt_t v);
+GRUEL_API const std::vector<int32_t> s32vector_elements(pmt_t v);
+GRUEL_API const std::vector<uint64_t> u64vector_elements(pmt_t v);
+GRUEL_API const std::vector<int64_t> s64vector_elements(pmt_t v);
+GRUEL_API const std::vector<float> f32vector_elements(pmt_t v);
+GRUEL_API const std::vector<double> f64vector_elements(pmt_t v);
+GRUEL_API const std::vector<std::complex<float> > c32vector_elements(pmt_t v);
+GRUEL_API const std::vector<std::complex<double> > c64vector_elements(pmt_t v);
// len is in elements
GRUEL_API const std::vector<uint8_t> pmt_u8vector_elements(pmt_t v);
@@ -502,20 +522,20 @@ GRUEL_API const std::vector<std::complex<double> > pmt_c64vector_elements(pmt_t
// Return non-const pointers to the elements
-GRUEL_API void *pmt_uniform_vector_writable_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
-
-GRUEL_API uint8_t *pmt_u8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API int8_t *pmt_s8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API uint16_t *pmt_u16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API int16_t *pmt_s16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API uint32_t *pmt_u32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API int32_t *pmt_s32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API uint64_t *pmt_u64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API int64_t *pmt_s64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API float *pmt_f32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API double *pmt_f64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API std::complex<float> *pmt_c32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
-GRUEL_API std::complex<double> *pmt_c64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API void *uniform_vector_writable_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
+
+GRUEL_API uint8_t *u8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API int8_t *s8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API uint16_t *u16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API int16_t *s16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API uint32_t *u32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API int32_t *s32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API uint64_t *u64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API int64_t *s64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API float *f32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API double *f64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API std::complex<float> *c32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+GRUEL_API std::complex<double> *c64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
/*
* ------------------------------------------------------------------------
@@ -528,31 +548,31 @@ GRUEL_API std::complex<double> *pmt_c64vector_writable_elements(pmt_t v, size_t
*/
//! Return true if \p obj is a dictionary
-GRUEL_API bool pmt_is_dict(const pmt_t &obj);
+GRUEL_API bool is_dict(const pmt_t &obj);
//! Make an empty dictionary
-GRUEL_API pmt_t pmt_make_dict();
+GRUEL_API pmt_t make_dict();
//! Return a new dictionary with \p key associated with \p value.
-GRUEL_API pmt_t pmt_dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value);
+GRUEL_API pmt_t dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value);
//! Return a new dictionary with \p key removed.
-GRUEL_API pmt_t pmt_dict_delete(const pmt_t &dict, const pmt_t &key);
+GRUEL_API pmt_t dict_delete(const pmt_t &dict, const pmt_t &key);
//! Return true if \p key exists in \p dict
-GRUEL_API bool pmt_dict_has_key(const pmt_t &dict, const pmt_t &key);
+GRUEL_API bool dict_has_key(const pmt_t &dict, const pmt_t &key);
//! If \p key exists in \p dict, return associated value; otherwise return \p not_found.
-GRUEL_API pmt_t pmt_dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found);
+GRUEL_API pmt_t dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found);
//! Return list of (key . value) pairs
-GRUEL_API pmt_t pmt_dict_items(pmt_t dict);
+GRUEL_API pmt_t dict_items(pmt_t dict);
//! Return list of keys
-GRUEL_API pmt_t pmt_dict_keys(pmt_t dict);
+GRUEL_API pmt_t dict_keys(pmt_t dict);
//! Return list of values
-GRUEL_API pmt_t pmt_dict_values(pmt_t dict);
+GRUEL_API pmt_t dict_values(pmt_t dict);
/*
* ------------------------------------------------------------------------
@@ -564,16 +584,16 @@ GRUEL_API pmt_t pmt_dict_values(pmt_t dict);
*/
//! Return true if \p obj is an any
-GRUEL_API bool pmt_is_any(pmt_t obj);
+GRUEL_API bool is_any(pmt_t obj);
//! make an any
-GRUEL_API pmt_t pmt_make_any(const boost::any &any);
+GRUEL_API pmt_t make_any(const boost::any &any);
//! Return underlying boost::any
-GRUEL_API boost::any pmt_any_ref(pmt_t obj);
+GRUEL_API boost::any any_ref(pmt_t obj);
//! Store \p any in \p obj
-GRUEL_API void pmt_any_set(pmt_t obj, const boost::any &any);
+GRUEL_API void any_set(pmt_t obj, const boost::any &any);
/*
@@ -582,13 +602,13 @@ GRUEL_API void pmt_any_set(pmt_t obj, const boost::any &any);
* ------------------------------------------------------------------------
*/
//! Return true if \p obj is a msg_accepter
-GRUEL_API bool pmt_is_msg_accepter(const pmt_t &obj);
+GRUEL_API bool is_msg_accepter(const pmt_t &obj);
//! make a msg_accepter
-GRUEL_API pmt_t pmt_make_msg_accepter(boost::shared_ptr<gruel::msg_accepter> ma);
+GRUEL_API pmt_t make_msg_accepter(boost::shared_ptr<gruel::msg_accepter> ma);
//! Return underlying msg_accepter
-GRUEL_API boost::shared_ptr<gruel::msg_accepter> pmt_msg_accepter_ref(const pmt_t &obj);
+GRUEL_API boost::shared_ptr<gruel::msg_accepter> msg_accepter_ref(const pmt_t &obj);
/*
* ------------------------------------------------------------------------
@@ -597,7 +617,7 @@ GRUEL_API boost::shared_ptr<gruel::msg_accepter> pmt_msg_accepter_ref(const pmt_
*/
//! Return true if x and y are the same object; otherwise return false.
-GRUEL_API bool pmt_eq(const pmt_t& x, const pmt_t& y);
+GRUEL_API bool eq(const pmt_t& x, const pmt_t& y);
/*!
* \brief Return true if x and y should normally be regarded as the same object, else false.
@@ -612,19 +632,19 @@ GRUEL_API bool pmt_eq(const pmt_t& x, const pmt_t& y);
* x and y are pairs or vectors that denote same location in store.
* </pre>
*/
-GRUEL_API bool pmt_eqv(const pmt_t& x, const pmt_t& y);
+GRUEL_API bool eqv(const pmt_t& x, const pmt_t& y);
/*!
- * pmt_equal recursively compares the contents of pairs and vectors,
- * applying pmt_eqv on other objects such as numbers and symbols.
- * pmt_equal may fail to terminate if its arguments are circular data
+ * pmt::equal recursively compares the contents of pairs and vectors,
+ * applying pmt::eqv on other objects such as numbers and symbols.
+ * pmt::equal may fail to terminate if its arguments are circular data
* structures.
*/
-GRUEL_API bool pmt_equal(const pmt_t& x, const pmt_t& y);
+GRUEL_API bool equal(const pmt_t& x, const pmt_t& y);
//! Return the number of elements in v
-GRUEL_API size_t pmt_length(const pmt_t& v);
+GRUEL_API size_t length(const pmt_t& v);
/*!
* \brief Find the first pair in \p alist whose car field is \p obj
@@ -632,9 +652,9 @@ GRUEL_API size_t pmt_length(const pmt_t& v);
*
* \p alist (for "association list") must be a list of pairs. If no pair
* in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_eq to compare \p obj with car fields of the pairs in \p alist.
+ * Uses pmt::eq to compare \p obj with car fields of the pairs in \p alist.
*/
-GRUEL_API pmt_t pmt_assq(pmt_t obj, pmt_t alist);
+GRUEL_API pmt_t assq(pmt_t obj, pmt_t alist);
/*!
* \brief Find the first pair in \p alist whose car field is \p obj
@@ -642,9 +662,9 @@ GRUEL_API pmt_t pmt_assq(pmt_t obj, pmt_t alist);
*
* \p alist (for "association list") must be a list of pairs. If no pair
* in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_eqv to compare \p obj with car fields of the pairs in \p alist.
+ * Uses pmt::eqv to compare \p obj with car fields of the pairs in \p alist.
*/
-GRUEL_API pmt_t pmt_assv(pmt_t obj, pmt_t alist);
+GRUEL_API pmt_t assv(pmt_t obj, pmt_t alist);
/*!
* \brief Find the first pair in \p alist whose car field is \p obj
@@ -652,9 +672,9 @@ GRUEL_API pmt_t pmt_assv(pmt_t obj, pmt_t alist);
*
* \p alist (for "association list") must be a list of pairs. If no pair
* in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_equal to compare \p obj with car fields of the pairs in \p alist.
+ * Uses pmt::equal to compare \p obj with car fields of the pairs in \p alist.
*/
-GRUEL_API pmt_t pmt_assoc(pmt_t obj, pmt_t alist);
+GRUEL_API pmt_t assoc(pmt_t obj, pmt_t alist);
/*!
* \brief Apply \p proc element-wise to the elements of list and returns
@@ -663,114 +683,114 @@ GRUEL_API pmt_t pmt_assoc(pmt_t obj, pmt_t alist);
* \p list must be a list. The dynamic order in which \p proc is
* applied to the elements of \p list is unspecified.
*/
-GRUEL_API pmt_t pmt_map(pmt_t proc(const pmt_t&), pmt_t list);
+GRUEL_API pmt_t map(pmt_t proc(const pmt_t&), pmt_t list);
/*!
* \brief reverse \p list.
*
* \p list must be a proper list.
*/
-GRUEL_API pmt_t pmt_reverse(pmt_t list);
+GRUEL_API pmt_t reverse(pmt_t list);
/*!
* \brief destructively reverse \p list.
*
* \p list must be a proper list.
*/
-GRUEL_API pmt_t pmt_reverse_x(pmt_t list);
+GRUEL_API pmt_t reverse_x(pmt_t list);
/*!
* \brief (acons x y a) == (cons (cons x y) a)
*/
inline static pmt_t
-pmt_acons(pmt_t x, pmt_t y, pmt_t a)
+acons(pmt_t x, pmt_t y, pmt_t a)
{
- return pmt_cons(pmt_cons(x, y), a);
+ return cons(cons(x, y), a);
}
/*!
* \brief locates \p nth element of \n list where the car is the 'zeroth' element.
*/
-GRUEL_API pmt_t pmt_nth(size_t n, pmt_t list);
+GRUEL_API pmt_t nth(size_t n, pmt_t list);
/*!
* \brief returns the tail of \p list that would be obtained by calling
* cdr \p n times in succession.
*/
-GRUEL_API pmt_t pmt_nthcdr(size_t n, pmt_t list);
+GRUEL_API pmt_t 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::memq use pmt::eq to compare \p obj with the elements of \p list.
*/
-GRUEL_API pmt_t pmt_memq(pmt_t obj, pmt_t list);
+GRUEL_API pmt_t 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::memv use pmt::eqv to compare \p obj with the elements of \p list.
*/
-GRUEL_API pmt_t pmt_memv(pmt_t obj, pmt_t list);
+GRUEL_API pmt_t 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::member use pmt::equal to compare \p obj with the elements of \p list.
*/
-GRUEL_API pmt_t pmt_member(pmt_t obj, pmt_t list);
+GRUEL_API pmt_t member(pmt_t obj, pmt_t list);
/*!
* \brief Return true if every element of \p list1 appears in \p list2, and false otherwise.
- * Comparisons are done with pmt_eqv.
+ * Comparisons are done with pmt::eqv.
*/
-GRUEL_API bool pmt_subsetp(pmt_t list1, pmt_t list2);
+GRUEL_API bool subsetp(pmt_t list1, pmt_t list2);
/*!
* \brief Return a list of length 1 containing \p x1
*/
-GRUEL_API pmt_t pmt_list1(const pmt_t& x1);
+GRUEL_API pmt_t list1(const pmt_t& x1);
/*!
* \brief Return a list of length 2 containing \p x1, \p x2
*/
-GRUEL_API pmt_t pmt_list2(const pmt_t& x1, const pmt_t& x2);
+GRUEL_API pmt_t list2(const pmt_t& x1, const pmt_t& x2);
/*!
* \brief Return a list of length 3 containing \p x1, \p x2, \p x3
*/
-GRUEL_API pmt_t pmt_list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3);
+GRUEL_API pmt_t list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3);
/*!
* \brief Return a list of length 4 containing \p x1, \p x2, \p x3, \p x4
*/
-GRUEL_API pmt_t pmt_list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4);
+GRUEL_API pmt_t list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4);
/*!
* \brief Return a list of length 5 containing \p x1, \p x2, \p x3, \p x4, \p x5
*/
-GRUEL_API pmt_t pmt_list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5);
+GRUEL_API pmt_t list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5);
/*!
* \brief Return a list of length 6 containing \p x1, \p x2, \p x3, \p x4, \p
* x5, \p x6
*/
-GRUEL_API pmt_t pmt_list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6);
+GRUEL_API pmt_t list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6);
/*!
* \brief Return \p list with \p item added to it.
*/
-GRUEL_API pmt_t pmt_list_add(pmt_t list, const pmt_t& item);
+GRUEL_API pmt_t list_add(pmt_t list, const pmt_t& item);
/*!
* \brief Return \p list with \p item removed from it.
*/
-GRUEL_API pmt_t pmt_list_rm(pmt_t list, const pmt_t& item);
+GRUEL_API pmt_t list_rm(pmt_t list, const pmt_t& item);
/*!
* \brief Return bool of \p list contains \p item
*/
-GRUEL_API bool pmt_list_has(pmt_t list, const pmt_t& item);
+GRUEL_API bool list_has(pmt_t list, const pmt_t& item);
/*
@@ -781,7 +801,7 @@ GRUEL_API bool pmt_list_has(pmt_t list, const pmt_t& item);
extern GRUEL_API const pmt_t PMT_EOF; //< The end of file object
//! return true if obj is the EOF object, otherwise return false.
-GRUEL_API bool pmt_is_eof_object(pmt_t obj);
+GRUEL_API bool is_eof_object(pmt_t obj);
/*!
* read converts external representations of pmt objects into the
@@ -798,18 +818,18 @@ GRUEL_API bool pmt_is_eof_object(pmt_t obj);
* representation, but the external representation is incomplete and
* therefore not parsable, an error is signaled.
*/
-GRUEL_API pmt_t pmt_read(std::istream &port);
+GRUEL_API pmt_t read(std::istream &port);
/*!
* Write a written representation of \p obj to the given \p port.
*/
-GRUEL_API void pmt_write(pmt_t obj, std::ostream &port);
+GRUEL_API void write(pmt_t obj, std::ostream &port);
/*!
* Return a string representation of \p obj.
- * This is the same output as would be generated by pmt_write.
+ * This is the same output as would be generated by pmt::write.
*/
-GRUEL_API std::string pmt_write_string(pmt_t obj);
+GRUEL_API std::string write_string(pmt_t obj);
GRUEL_API std::ostream& operator<<(std::ostream &os, pmt_t obj);
@@ -817,7 +837,7 @@ GRUEL_API std::ostream& operator<<(std::ostream &os, pmt_t obj);
/*!
* \brief Write pmt string representation to stdout.
*/
-GRUEL_API void pmt_print(pmt_t v);
+GRUEL_API void print(pmt_t v);
/*
@@ -828,33 +848,33 @@ GRUEL_API void pmt_print(pmt_t v);
/*!
* \brief Write portable byte-serial representation of \p obj to \p sink
*/
-GRUEL_API bool pmt_serialize(pmt_t obj, std::streambuf &sink);
+GRUEL_API bool serialize(pmt_t obj, std::streambuf &sink);
/*!
* \brief Create obj from portable byte-serial representation
*/
-GRUEL_API pmt_t pmt_deserialize(std::streambuf &source);
+GRUEL_API pmt_t deserialize(std::streambuf &source);
-GRUEL_API void pmt_dump_sizeof(); // debugging
+GRUEL_API void dump_sizeof(); // debugging
/*!
* \brief Provide a simple string generating interface to pmt's serialize function
*/
-GRUEL_API std::string pmt_serialize_str(pmt_t obj);
+GRUEL_API std::string serialize_str(pmt_t obj);
/*!
* \brief Provide a simple string generating interface to pmt's deserialize function
*/
-GRUEL_API pmt_t pmt_deserialize_str(std::string str);
+GRUEL_API pmt_t deserialize_str(std::string str);
/*!
* \brief Provide a comparator function object to allow pmt use in stl types
*/
-class pmt_comperator {
+class comperator {
public:
bool operator()(pmt::pmt_t const& p1, pmt::pmt_t const& p2) const
- { return pmt::pmt_eqv(p1,p2)?false:p1.get()>p2.get(); }
+ { return pmt::eqv(p1,p2)?false:p1.get()>p2.get(); }
};
} /* namespace pmt */
diff --git a/gruel/src/include/gruel/pmt_sugar.h b/gruel/src/include/gruel/pmt_sugar.h
index bde7f716dc..7791bcce6a 100644
--- a/gruel/src/include/gruel/pmt_sugar.h
+++ b/gruel/src/include/gruel/pmt_sugar.h
@@ -32,136 +32,136 @@ namespace pmt {
static inline pmt_t
mp(const std::string &s)
{
- return pmt_string_to_symbol(s);
+ return string_to_symbol(s);
}
//! Make pmt symbol
static inline pmt_t
mp(const char *s)
{
- return pmt_string_to_symbol(s);
+ return string_to_symbol(s);
}
//! Make pmt long
static inline pmt_t
mp(long x){
- return pmt_from_long(x);
+ return from_long(x);
}
//! Make pmt long
static inline pmt_t
mp(long long unsigned x){
- return pmt_from_long(x);
+ return from_long(x);
}
//! Make pmt long
static inline pmt_t
mp(int x){
- return pmt_from_long(x);
+ return from_long(x);
}
//! Make pmt double
static inline pmt_t
mp(double x){
- return pmt_from_double(x);
+ return from_double(x);
}
//! Make pmt complex
static inline pmt_t
mp(std::complex<double> z)
{
- return pmt_make_rectangular(z.real(), z.imag());
+ return make_rectangular(z.real(), z.imag());
}
//! Make pmt complex
static inline pmt_t
mp(std::complex<float> z)
{
- return pmt_make_rectangular(z.real(), z.imag());
+ return make_rectangular(z.real(), z.imag());
}
//! Make pmt msg_accepter
static inline pmt_t
mp(boost::shared_ptr<gruel::msg_accepter> ma)
{
- return pmt_make_msg_accepter(ma);
+ return make_msg_accepter(ma);
}
//! Make pmt Binary Large Object (BLOB)
static inline pmt_t
mp(const void *data, size_t len_in_bytes)
{
- return pmt_make_blob(data, len_in_bytes);
+ return make_blob(data, len_in_bytes);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0)
{
- return pmt_make_tuple(e0);
+ return make_tuple(e0);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1)
{
- return pmt_make_tuple(e0, e1);
+ return make_tuple(e0, e1);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2)
{
- return pmt_make_tuple(e0, e1, e2);
+ return make_tuple(e0, e1, e2);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3)
{
- return pmt_make_tuple(e0, e1, e2, e3);
+ return make_tuple(e0, e1, e2, e3);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4);
+ return make_tuple(e0, e1, e2, e3, e4);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4, e5);
+ return make_tuple(e0, e1, e2, e3, e4, e5);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4, e5, e6);
+ return make_tuple(e0, e1, e2, e3, e4, e5, e6);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4, e5, e6, e7);
+ return make_tuple(e0, e1, e2, e3, e4, e5, e6, e7);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4, e5, e6, e7, e8);
+ return make_tuple(e0, e1, e2, e3, e4, e5, e6, e7, e8);
}
//! Make tuple
static inline pmt_t
mp(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9)
{
- return pmt_make_tuple(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9);
+ return make_tuple(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9);
}
diff --git a/gruel/src/lib/pmt/pmt.cc b/gruel/src/lib/pmt/pmt.cc
index 1d1e9ba7c8..8ea0e76143 100644
--- a/gruel/src/lib/pmt/pmt.cc
+++ b/gruel/src/lib/pmt/pmt.cc
@@ -69,23 +69,23 @@ pmt_base::~pmt_base()
// Exceptions
////////////////////////////////////////////////////////////////////////////
-pmt_exception::pmt_exception(const std::string &msg, pmt_t obj)
- : logic_error(msg + ": " + pmt_write_string(obj))
+exception::exception(const std::string &msg, pmt_t obj)
+ : logic_error(msg + ": " + write_string(obj))
{
}
-pmt_wrong_type::pmt_wrong_type(const std::string &msg, pmt_t obj)
- : pmt_exception(msg + ": wrong_type ", obj)
+wrong_type::wrong_type(const std::string &msg, pmt_t obj)
+ : exception(msg + ": wrong_type ", obj)
{
}
-pmt_out_of_range::pmt_out_of_range(const std::string &msg, pmt_t obj)
- : pmt_exception(msg + ": out of range ", obj)
+out_of_range::out_of_range(const std::string &msg, pmt_t obj)
+ : exception(msg + ": out of range ", obj)
{
}
-pmt_notimplemented::pmt_notimplemented(const std::string &msg, pmt_t obj)
- : pmt_exception(msg + ": notimplemented ", obj)
+notimplemented::notimplemented(const std::string &msg, pmt_t obj)
+ : exception(msg + ": notimplemented ", obj)
{
}
@@ -157,10 +157,10 @@ _any(pmt_t x)
// Globals
////////////////////////////////////////////////////////////////////////////
-const pmt_t PMT_T = pmt_t(new pmt_bool()); // singleton
-const pmt_t PMT_F = pmt_t(new pmt_bool()); // singleton
-const pmt_t PMT_NIL = pmt_t(new pmt_null()); // singleton
-const pmt_t PMT_EOF = pmt_cons(PMT_NIL, PMT_NIL); // singleton
+const pmt_t PMT_T = pmt_t(new pmt_bool()); // singleton
+const pmt_t PMT_F = pmt_t(new pmt_bool()); // singleton
+const pmt_t PMT_NIL = pmt_t(new pmt_null()); // singleton
+const pmt_t PMT_EOF = cons(PMT_NIL, PMT_NIL); // singleton
////////////////////////////////////////////////////////////////////////////
// Booleans
@@ -169,37 +169,37 @@ const pmt_t PMT_EOF = pmt_cons(PMT_NIL, PMT_NIL); // singleton
pmt_bool::pmt_bool(){}
bool
-pmt_is_true(pmt_t obj)
+is_true(pmt_t obj)
{
return obj != PMT_F;
}
bool
-pmt_is_false(pmt_t obj)
+is_false(pmt_t obj)
{
return obj == PMT_F;
}
bool
-pmt_is_bool(pmt_t obj)
+is_bool(pmt_t obj)
{
return obj->is_bool();
}
pmt_t
-pmt_from_bool(bool val)
+from_bool(bool val)
{
return val ? PMT_T : PMT_F;
}
bool
-pmt_to_bool(pmt_t val)
+to_bool(pmt_t val)
{
if (val == PMT_T)
return true;
if (val == PMT_F)
return false;
- throw pmt_wrong_type("pmt_to_bool", val);
+ throw wrong_type("pmt_to_bool", val);
}
////////////////////////////////////////////////////////////////////////////
@@ -230,13 +230,13 @@ hash_string(const std::string &s)
}
bool
-pmt_is_symbol(const pmt_t& obj)
+is_symbol(const pmt_t& obj)
{
return obj->is_symbol();
}
pmt_t
-pmt_string_to_symbol(const std::string &name)
+string_to_symbol(const std::string &name)
{
unsigned hash = hash_string(name) % SYMBOL_HASH_TABLE_SIZE;
@@ -255,16 +255,16 @@ pmt_string_to_symbol(const std::string &name)
// alias...
pmt_t
-pmt_intern(const std::string &name)
+intern(const std::string &name)
{
- return pmt_string_to_symbol(name);
+ return string_to_symbol(name);
}
const std::string
-pmt_symbol_to_string(const pmt_t& sym)
+symbol_to_string(const pmt_t& sym)
{
if (!sym->is_symbol())
- throw pmt_wrong_type("pmt_symbol_to_string", sym);
+ throw wrong_type("pmt_symbol_to_string", sym);
return _symbol(sym)->name();
}
@@ -276,7 +276,7 @@ pmt_symbol_to_string(const pmt_t& sym)
////////////////////////////////////////////////////////////////////////////
bool
-pmt_is_number(pmt_t x)
+is_number(pmt_t x)
{
return x->is_number();
}
@@ -288,26 +288,26 @@ pmt_is_number(pmt_t x)
pmt_integer::pmt_integer(long value) : d_value(value) {}
bool
-pmt_is_integer(pmt_t x)
+is_integer(pmt_t x)
{
return x->is_integer();
}
pmt_t
-pmt_from_long(long x)
+from_long(long x)
{
return pmt_t(new pmt_integer(x));
}
long
-pmt_to_long(pmt_t x)
+to_long(pmt_t x)
{
pmt_integer* i = dynamic_cast<pmt_integer*>(x.get());
if ( i )
return i->value();
- throw pmt_wrong_type("pmt_to_long", x);
+ throw wrong_type("pmt_to_long", x);
}
////////////////////////////////////////////////////////////////////////////
@@ -317,20 +317,20 @@ pmt_to_long(pmt_t x)
pmt_uint64::pmt_uint64(uint64_t value) : d_value(value) {}
bool
-pmt_is_uint64(pmt_t x)
+is_uint64(pmt_t x)
{
return x->is_uint64();
}
pmt_t
-pmt_from_uint64(uint64_t x)
+from_uint64(uint64_t x)
{
return pmt_t(new pmt_uint64(x));
}
uint64_t
-pmt_to_uint64(pmt_t x)
+to_uint64(pmt_t x)
{
if(x->is_uint64())
return _uint64(x)->value();
@@ -341,7 +341,7 @@ pmt_to_uint64(pmt_t x)
return (uint64_t) tmp;
}
- throw pmt_wrong_type("pmt_to_uint64", x);
+ throw wrong_type("pmt_to_uint64", x);
}
////////////////////////////////////////////////////////////////////////////
@@ -351,26 +351,26 @@ pmt_to_uint64(pmt_t x)
pmt_real::pmt_real(double value) : d_value(value) {}
bool
-pmt_is_real(pmt_t x)
+is_real(pmt_t x)
{
return x->is_real();
}
pmt_t
-pmt_from_double(double x)
+from_double(double x)
{
return pmt_t(new pmt_real(x));
}
double
-pmt_to_double(pmt_t x)
+to_double(pmt_t x)
{
if (x->is_real())
return _real(x)->value();
if (x->is_integer())
return _integer(x)->value();
- throw pmt_wrong_type("pmt_to_double", x);
+ throw wrong_type("pmt_to_double", x);
}
////////////////////////////////////////////////////////////////////////////
@@ -380,13 +380,19 @@ pmt_to_double(pmt_t x)
pmt_complex::pmt_complex(std::complex<double> value) : d_value(value) {}
bool
-pmt_is_complex(pmt_t x)
+is_complex(pmt_t x)
{
return x->is_complex();
}
pmt_t
-pmt_make_rectangular(double re, double im)
+make_rectangular(double re, double im)
+{
+ return from_complex(re, im);
+}
+
+pmt_t
+from_complex(double re, double im)
{
return pmt_from_complex(re, im);
}
@@ -396,13 +402,14 @@ pmt_t pmt_from_complex(double re, double im)
return pmt_t(new pmt_complex(std::complex<double>(re, im)));
}
-pmt_t pmt_from_complex(const std::complex<double> &z)
+pmt_t
+from_complex(const std::complex<double> &z)
{
return pmt_t(new pmt_complex(z));
}
std::complex<double>
-pmt_to_complex(pmt_t x)
+to_complex(pmt_t x)
{
if (x->is_complex())
return _complex(x)->value();
@@ -411,7 +418,7 @@ pmt_to_complex(pmt_t x)
if (x->is_integer())
return _integer(x)->value();
- throw pmt_wrong_type("pmt_to_complex", x);
+ throw wrong_type("pmt_to_complex", x);
}
////////////////////////////////////////////////////////////////////////////
@@ -422,59 +429,59 @@ pmt_null::pmt_null() {}
pmt_pair::pmt_pair(const pmt_t& car, const pmt_t& cdr) : d_car(car), d_cdr(cdr) {}
bool
-pmt_is_null(const pmt_t& x)
+is_null(const pmt_t& x)
{
return x == PMT_NIL;
}
bool
-pmt_is_pair(const pmt_t& obj)
+is_pair(const pmt_t& obj)
{
return obj->is_pair();
}
pmt_t
-pmt_cons(const pmt_t& x, const pmt_t& y)
+cons(const pmt_t& x, const pmt_t& y)
{
return pmt_t(new pmt_pair(x, y));
}
pmt_t
-pmt_car(const pmt_t& pair)
+car(const pmt_t& pair)
{
pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get());
if ( p )
return p->car();
- throw pmt_wrong_type("pmt_car", pair);
+ throw wrong_type("pmt_car", pair);
}
pmt_t
-pmt_cdr(const pmt_t& pair)
+cdr(const pmt_t& pair)
{
pmt_pair* p = dynamic_cast<pmt_pair*>(pair.get());
if ( p )
return p->cdr();
- throw pmt_wrong_type("pmt_cdr", pair);
+ throw wrong_type("pmt_cdr", pair);
}
void
-pmt_set_car(pmt_t pair, pmt_t obj)
+set_car(pmt_t pair, pmt_t obj)
{
if (pair->is_pair())
_pair(pair)->set_car(obj);
else
- throw pmt_wrong_type("pmt_set_car", pair);
+ throw wrong_type("pmt_set_car", pair);
}
void
-pmt_set_cdr(pmt_t pair, pmt_t obj)
+set_cdr(pmt_t pair, pmt_t obj)
{
if (pair->is_pair())
_pair(pair)->set_cdr(obj);
else
- throw pmt_wrong_type("pmt_set_cdr", pair);
+ throw wrong_type("pmt_set_cdr", pair);
}
////////////////////////////////////////////////////////////////////////////
@@ -492,7 +499,7 @@ pmt_t
pmt_vector::ref(size_t k) const
{
if (k >= length())
- throw pmt_out_of_range("pmt_vector_ref", pmt_from_long(k));
+ throw out_of_range("pmt_vector_ref", from_long(k));
return d_v[k];
}
@@ -500,7 +507,7 @@ void
pmt_vector::set(size_t k, pmt_t obj)
{
if (k >= length())
- throw pmt_out_of_range("pmt_vector_set", pmt_from_long(k));
+ throw out_of_range("pmt_vector_set", from_long(k));
d_v[k] = obj;
}
@@ -512,38 +519,38 @@ pmt_vector::fill(pmt_t obj)
}
bool
-pmt_is_vector(pmt_t obj)
+is_vector(pmt_t obj)
{
return obj->is_vector();
}
pmt_t
-pmt_make_vector(size_t k, pmt_t fill)
+make_vector(size_t k, pmt_t fill)
{
return pmt_t(new pmt_vector(k, fill));
}
pmt_t
-pmt_vector_ref(pmt_t vector, size_t k)
+vector_ref(pmt_t vector, size_t k)
{
if (!vector->is_vector())
- throw pmt_wrong_type("pmt_vector_ref", vector);
+ throw wrong_type("pmt_vector_ref", vector);
return _vector(vector)->ref(k);
}
void
-pmt_vector_set(pmt_t vector, size_t k, pmt_t obj)
+vector_set(pmt_t vector, size_t k, pmt_t obj)
{
if (!vector->is_vector())
- throw pmt_wrong_type("pmt_vector_set", vector);
+ throw wrong_type("pmt_vector_set", vector);
_vector(vector)->set(k, obj);
}
void
-pmt_vector_fill(pmt_t vector, pmt_t obj)
+vector_fill(pmt_t vector, pmt_t obj)
{
if (!vector->is_vector())
- throw pmt_wrong_type("pmt_vector_set", vector);
+ throw wrong_type("pmt_vector_set", vector);
_vector(vector)->fill(obj);
}
@@ -560,21 +567,21 @@ pmt_t
pmt_tuple::ref(size_t k) const
{
if (k >= length())
- throw pmt_out_of_range("pmt_tuple_ref", pmt_from_long(k));
+ throw out_of_range("pmt_tuple_ref", from_long(k));
return d_v[k];
}
bool
-pmt_is_tuple(pmt_t obj)
+is_tuple(pmt_t obj)
{
return obj->is_tuple();
}
pmt_t
-pmt_tuple_ref(const pmt_t &tuple, size_t k)
+tuple_ref(const pmt_t &tuple, size_t k)
{
if (!tuple->is_tuple())
- throw pmt_wrong_type("pmt_tuple_ref", tuple);
+ throw wrong_type("pmt_tuple_ref", tuple);
return _tuple(tuple)->ref(k);
}
@@ -582,13 +589,13 @@ pmt_tuple_ref(const pmt_t &tuple, size_t k)
// make_constructor()
pmt_t
-pmt_make_tuple()
+make_tuple()
{
return pmt_t(new pmt_tuple(0));
}
pmt_t
-pmt_make_tuple(const pmt_t &e0)
+make_tuple(const pmt_t &e0)
{
pmt_tuple *t = new pmt_tuple(1);
t->_set(0, e0);
@@ -596,7 +603,7 @@ pmt_make_tuple(const pmt_t &e0)
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1)
+make_tuple(const pmt_t &e0, const pmt_t &e1)
{
pmt_tuple *t = new pmt_tuple(2);
t->_set(0, e0);
@@ -605,7 +612,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1)
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2)
{
pmt_tuple *t = new pmt_tuple(3);
t->_set(0, e0);
@@ -615,7 +622,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2)
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3)
{
pmt_tuple *t = new pmt_tuple(4);
t->_set(0, e0);
@@ -626,7 +633,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4)
{
pmt_tuple *t = new pmt_tuple(5);
t->_set(0, e0);
@@ -638,7 +645,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5)
{
pmt_tuple *t = new pmt_tuple(6);
t->_set(0, e0);
@@ -651,7 +658,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6)
{
pmt_tuple *t = new pmt_tuple(7);
t->_set(0, e0);
@@ -665,7 +672,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7)
{
pmt_tuple *t = new pmt_tuple(8);
t->_set(0, e0);
@@ -680,7 +687,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8)
{
pmt_tuple *t = new pmt_tuple(9);
t->_set(0, e0);
@@ -696,7 +703,7 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9)
+make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9)
{
pmt_tuple *t = new pmt_tuple(10);
t->_set(0, e0);
@@ -713,12 +720,12 @@ pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e
}
pmt_t
-pmt_to_tuple(const pmt_t &x)
+to_tuple(const pmt_t &x)
{
if (x->is_tuple()) // already one
return x;
- size_t len = pmt_length(x);
+ size_t len = length(x);
pmt_tuple *t = new pmt_tuple(len);
pmt_t r = pmt_t(t);
@@ -731,13 +738,13 @@ pmt_to_tuple(const pmt_t &x)
if (x->is_pair()){
pmt_t y = x;
for (size_t i = 0; i < len; i++){
- t->_set(i, pmt_car(y));
- y = pmt_cdr(y);
+ t->_set(i, car(y));
+ y = cdr(y);
}
return r;
}
- throw pmt_wrong_type("pmt_to_tuple", x);
+ throw wrong_type("pmt_to_tuple", x);
}
@@ -747,24 +754,24 @@ pmt_to_tuple(const pmt_t &x)
////////////////////////////////////////////////////////////////////////////
bool
-pmt_is_uniform_vector(pmt_t x)
+is_uniform_vector(pmt_t x)
{
return x->is_uniform_vector();
}
const void *
-pmt_uniform_vector_elements(pmt_t vector, size_t &len)
+uniform_vector_elements(pmt_t vector, size_t &len)
{
if (!vector->is_uniform_vector())
- throw pmt_wrong_type("pmt_uniform_vector_elements", vector);
+ throw wrong_type("pmt_uniform_vector_elements", vector);
return _uniform_vector(vector)->uniform_elements(len);
}
void *
-pmt_uniform_vector_writable_elements(pmt_t vector, size_t &len)
+uniform_vector_writable_elements(pmt_t vector, size_t &len)
{
if (!vector->is_uniform_vector())
- throw pmt_wrong_type("pmt_uniform_vector_writable_elements", vector);
+ throw wrong_type("pmt_uniform_vector_writable_elements", vector);
return _uniform_vector(vector)->uniform_writable_elements(len);
}
@@ -781,82 +788,82 @@ pmt_uniform_vector_writable_elements(pmt_t vector, size_t &len)
*/
bool
-pmt_is_dict(const pmt_t &obj)
+is_dict(const pmt_t &obj)
{
- return pmt_is_null(obj) || pmt_is_pair(obj);
+ return is_null(obj) || is_pair(obj);
}
pmt_t
-pmt_make_dict()
+make_dict()
{
return PMT_NIL;
}
pmt_t
-pmt_dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value)
+dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value)
{
- if (pmt_is_null(dict))
- return pmt_acons(key, value, PMT_NIL);
+ if (is_null(dict))
+ return acons(key, value, PMT_NIL);
- if (pmt_dict_has_key(dict, key))
- return pmt_acons(key, value, pmt_dict_delete(dict, key));
+ if (dict_has_key(dict, key))
+ return acons(key, value, dict_delete(dict, key));
- return pmt_acons(key, value, dict);
+ return acons(key, value, dict);
}
pmt_t
-pmt_dict_delete(const pmt_t &dict, const pmt_t &key)
+dict_delete(const pmt_t &dict, const pmt_t &key)
{
- if (pmt_is_null(dict))
+ if (is_null(dict))
return dict;
- if (pmt_eqv(pmt_caar(dict), key))
- return pmt_cdr(dict);
+ if (eqv(caar(dict), key))
+ return cdr(dict);
- return pmt_cons(pmt_car(dict), pmt_dict_delete(pmt_cdr(dict), key));
+ return cons(car(dict), dict_delete(cdr(dict), key));
}
pmt_t
-pmt_dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found)
+dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found)
{
- pmt_t p = pmt_assv(key, dict); // look for (key . value) pair
- if (pmt_is_pair(p))
- return pmt_cdr(p);
+ pmt_t p = assv(key, dict); // look for (key . value) pair
+ if (is_pair(p))
+ return cdr(p);
else
return not_found;
}
bool
-pmt_dict_has_key(const pmt_t &dict, const pmt_t &key)
+dict_has_key(const pmt_t &dict, const pmt_t &key)
{
- return pmt_is_pair(pmt_assv(key, dict));
+ return is_pair(assv(key, dict));
}
pmt_t
-pmt_dict_items(pmt_t dict)
+dict_items(pmt_t dict)
{
- if (!pmt_is_dict(dict))
- throw pmt_wrong_type("pmt_dict_values", dict);
+ if (!is_dict(dict))
+ throw wrong_type("pmt_dict_values", dict);
return dict; // equivalent to dict in the a-list case
}
pmt_t
-pmt_dict_keys(pmt_t dict)
+dict_keys(pmt_t dict)
{
- if (!pmt_is_dict(dict))
- throw pmt_wrong_type("pmt_dict_keys", dict);
+ if (!is_dict(dict))
+ throw wrong_type("pmt_dict_keys", dict);
- return pmt_map(pmt_car, dict);
+ return map(car, dict);
}
pmt_t
-pmt_dict_values(pmt_t dict)
+dict_values(pmt_t dict)
{
- if (!pmt_is_dict(dict))
- throw pmt_wrong_type("pmt_dict_keys", dict);
+ if (!is_dict(dict))
+ throw wrong_type("pmt_dict_keys", dict);
- return pmt_map(pmt_cdr, dict);
+ return map(cdr, dict);
}
////////////////////////////////////////////////////////////////////////////
@@ -866,30 +873,30 @@ pmt_dict_values(pmt_t dict)
pmt_any::pmt_any(const boost::any &any) : d_any(any) {}
bool
-pmt_is_any(pmt_t obj)
+is_any(pmt_t obj)
{
return obj->is_any();
}
pmt_t
-pmt_make_any(const boost::any &any)
+make_any(const boost::any &any)
{
return pmt_t(new pmt_any(any));
}
boost::any
-pmt_any_ref(pmt_t obj)
+any_ref(pmt_t obj)
{
if (!obj->is_any())
- throw pmt_wrong_type("pmt_any_ref", obj);
+ throw wrong_type("pmt_any_ref", obj);
return _any(obj)->ref();
}
void
-pmt_any_set(pmt_t obj, const boost::any &any)
+any_set(pmt_t obj, const boost::any &any)
{
if (!obj->is_any())
- throw pmt_wrong_type("pmt_any_set", obj);
+ throw wrong_type("pmt_any_set", obj);
_any(obj)->set(any);
}
@@ -898,31 +905,31 @@ pmt_any_set(pmt_t obj, const boost::any &any)
////////////////////////////////////////////////////////////////////////////
bool
-pmt_is_msg_accepter(const pmt_t &obj)
+is_msg_accepter(const pmt_t &obj)
{
- if (!pmt_is_any(obj))
+ if (!is_any(obj))
return false;
- boost::any r = pmt_any_ref(obj);
+ boost::any r = any_ref(obj);
return boost::any_cast<gruel::msg_accepter_sptr>(&r) != 0;
}
//! make a msg_accepter
pmt_t
-pmt_make_msg_accepter(gruel::msg_accepter_sptr ma)
+make_msg_accepter(gruel::msg_accepter_sptr ma)
{
- return pmt_make_any(ma);
+ return make_any(ma);
}
//! Return underlying msg_accepter
gruel::msg_accepter_sptr
-pmt_msg_accepter_ref(const pmt_t &obj)
+msg_accepter_ref(const pmt_t &obj)
{
try {
- return boost::any_cast<gruel::msg_accepter_sptr>(pmt_any_ref(obj));
+ return boost::any_cast<gruel::msg_accepter_sptr>(any_ref(obj));
}
catch (boost::bad_any_cast &e){
- throw pmt_wrong_type("pmt_msg_accepter_ref", obj);
+ throw wrong_type("pmt_msg_accepter_ref", obj);
}
}
@@ -932,30 +939,30 @@ pmt_msg_accepter_ref(const pmt_t &obj)
////////////////////////////////////////////////////////////////////////////
bool
-pmt_is_blob(pmt_t x)
+is_blob(pmt_t x)
{
- // return pmt_is_u8vector(x);
- return pmt_is_uniform_vector(x);
+ // return is_u8vector(x);
+ return is_uniform_vector(x);
}
pmt_t
-pmt_make_blob(const void *buf, size_t len_in_bytes)
+make_blob(const void *buf, size_t len_in_bytes)
{
- return pmt_init_u8vector(len_in_bytes, (const uint8_t *) buf);
+ return init_u8vector(len_in_bytes, (const uint8_t *) buf);
}
const void *
-pmt_blob_data(pmt_t blob)
+blob_data(pmt_t blob)
{
size_t len;
- return pmt_uniform_vector_elements(blob, len);
+ return uniform_vector_elements(blob, len);
}
size_t
-pmt_blob_length(pmt_t blob)
+blob_length(pmt_t blob)
{
size_t len;
- pmt_uniform_vector_elements(blob, len);
+ uniform_vector_elements(blob, len);
return len;
}
@@ -965,13 +972,13 @@ pmt_blob_length(pmt_t blob)
////////////////////////////////////////////////////////////////////////////
bool
-pmt_eq(const pmt_t& x, const pmt_t& y)
+eq(const pmt_t& x, const pmt_t& y)
{
return x == y;
}
bool
-pmt_eqv(const pmt_t& x, const pmt_t& y)
+eqv(const pmt_t& x, const pmt_t& y)
{
if (x == y)
return true;
@@ -992,7 +999,7 @@ pmt_eqv(const pmt_t& x, const pmt_t& y)
}
bool
-pmt_eqv_raw(pmt_base *x, pmt_base *y)
+eqv_raw(pmt_base *x, pmt_base *y)
{
if (x == y)
return true;
@@ -1013,13 +1020,13 @@ pmt_eqv_raw(pmt_base *x, pmt_base *y)
}
bool
-pmt_equal(const pmt_t& x, const pmt_t& y)
+equal(const pmt_t& x, const pmt_t& y)
{
- if (pmt_eqv(x, y))
+ if (eqv(x, y))
return true;
if (x->is_pair() && y->is_pair())
- return pmt_equal(pmt_car(x), pmt_car(y)) && pmt_equal(pmt_cdr(x), pmt_cdr(y));
+ return equal(car(x), car(y)) && equal(cdr(x), cdr(y));
if (x->is_vector() && y->is_vector()){
pmt_vector *xv = _vector(x);
@@ -1028,7 +1035,7 @@ pmt_equal(const pmt_t& x, const pmt_t& y)
return false;
for (unsigned i = 0; i < xv->length(); i++)
- if (!pmt_equal(xv->_ref(i), yv->_ref(i)))
+ if (!equal(xv->_ref(i), yv->_ref(i)))
return false;
return true;
@@ -1041,7 +1048,7 @@ pmt_equal(const pmt_t& x, const pmt_t& y)
return false;
for (unsigned i = 0; i < xv->length(); i++)
- if (!pmt_equal(xv->_ref(i), yv->_ref(i)))
+ if (!equal(xv->_ref(i), yv->_ref(i)))
return false;
return true;
@@ -1068,7 +1075,7 @@ pmt_equal(const pmt_t& x, const pmt_t& y)
}
size_t
-pmt_length(const pmt_t& x)
+length(const pmt_t& x)
{
if (x->is_vector())
return _vector(x)->length();
@@ -1084,35 +1091,35 @@ pmt_length(const pmt_t& x)
if (x->is_pair()) {
size_t length=1;
- pmt_t it = pmt_cdr(x);
- while (pmt_is_pair(it)){
+ pmt_t it = cdr(x);
+ while (is_pair(it)){
length++;
- it = pmt_cdr(it);
+ it = cdr(it);
}
- if (pmt_is_null(it))
+ if (is_null(it))
return length;
// not a proper list
- throw pmt_wrong_type("pmt_length", x);
+ throw wrong_type("pmt_length", x);
}
// FIXME dictionary length (number of entries)
- throw pmt_wrong_type("pmt_length", x);
+ throw wrong_type("pmt_length", x);
}
pmt_t
-pmt_assq(pmt_t obj, pmt_t alist)
+assq(pmt_t obj, pmt_t alist)
{
- while (pmt_is_pair(alist)){
- pmt_t p = pmt_car(alist);
- if (!pmt_is_pair(p)) // malformed alist
+ while (is_pair(alist)){
+ pmt_t p = car(alist);
+ if (!is_pair(p)) // malformed alist
return PMT_F;
- if (pmt_eq(obj, pmt_car(p)))
+ if (eq(obj, car(p)))
return p;
- alist = pmt_cdr(alist);
+ alist = cdr(alist);
}
return PMT_F;
}
@@ -1121,14 +1128,14 @@ pmt_assq(pmt_t obj, pmt_t alist)
* This avoids a bunch of shared_pointer reference count manipulation.
*/
pmt_t
-pmt_assv_raw(pmt_base *obj, pmt_base *alist)
+assv_raw(pmt_base *obj, pmt_base *alist)
{
while (alist->is_pair()){
pmt_base *p = ((pmt_pair *)alist)->d_car.get();
if (!p->is_pair()) // malformed alist
return PMT_F;
- if (pmt_eqv_raw(obj, ((pmt_pair *)p)->d_car.get()))
+ if (eqv_raw(obj, ((pmt_pair *)p)->d_car.get()))
return ((pmt_pair *)alist)->d_car;
alist = (((pmt_pair *)alist)->d_cdr).get();
@@ -1139,25 +1146,25 @@ pmt_assv_raw(pmt_base *obj, pmt_base *alist)
#if 1
pmt_t
-pmt_assv(pmt_t obj, pmt_t alist)
+assv(pmt_t obj, pmt_t alist)
{
- return pmt_assv_raw(obj.get(), alist.get());
+ return assv_raw(obj.get(), alist.get());
}
#else
pmt_t
-pmt_assv(pmt_t obj, pmt_t alist)
+assv(pmt_t obj, pmt_t alist)
{
- while (pmt_is_pair(alist)){
- pmt_t p = pmt_car(alist);
- if (!pmt_is_pair(p)) // malformed alist
+ while (is_pair(alist)){
+ pmt_t p = car(alist);
+ if (!is_pair(p)) // malformed alist
return PMT_F;
- if (pmt_eqv(obj, pmt_car(p)))
+ if (eqv(obj, car(p)))
return p;
- alist = pmt_cdr(alist);
+ alist = cdr(alist);
}
return PMT_F;
}
@@ -1166,184 +1173,184 @@ pmt_assv(pmt_t obj, pmt_t alist)
pmt_t
-pmt_assoc(pmt_t obj, pmt_t alist)
+assoc(pmt_t obj, pmt_t alist)
{
- while (pmt_is_pair(alist)){
- pmt_t p = pmt_car(alist);
- if (!pmt_is_pair(p)) // malformed alist
+ while (is_pair(alist)){
+ pmt_t p = car(alist);
+ if (!is_pair(p)) // malformed alist
return PMT_F;
- if (pmt_equal(obj, pmt_car(p)))
+ if (equal(obj, car(p)))
return p;
- alist = pmt_cdr(alist);
+ alist = cdr(alist);
}
return PMT_F;
}
pmt_t
-pmt_map(pmt_t proc(const pmt_t&), pmt_t list)
+map(pmt_t proc(const pmt_t&), pmt_t list)
{
pmt_t r = PMT_NIL;
- while(pmt_is_pair(list)){
- r = pmt_cons(proc(pmt_car(list)), r);
- list = pmt_cdr(list);
+ while(is_pair(list)){
+ r = cons(proc(car(list)), r);
+ list = cdr(list);
}
- return pmt_reverse_x(r);
+ return reverse_x(r);
}
pmt_t
-pmt_reverse(pmt_t listx)
+reverse(pmt_t listx)
{
pmt_t list = listx;
pmt_t r = PMT_NIL;
- while(pmt_is_pair(list)){
- r = pmt_cons(pmt_car(list), r);
- list = pmt_cdr(list);
+ while(is_pair(list)){
+ r = cons(car(list), r);
+ list = cdr(list);
}
- if (pmt_is_null(list))
+ if (is_null(list))
return r;
else
- throw pmt_wrong_type("pmt_reverse", listx);
+ throw wrong_type("pmt_reverse", listx);
}
pmt_t
-pmt_reverse_x(pmt_t list)
+reverse_x(pmt_t list)
{
// FIXME do it destructively
- return pmt_reverse(list);
+ return reverse(list);
}
pmt_t
-pmt_nth(size_t n, pmt_t list)
+nth(size_t n, pmt_t list)
{
- pmt_t t = pmt_nthcdr(n, list);
- if (pmt_is_pair(t))
- return pmt_car(t);
+ pmt_t t = nthcdr(n, list);
+ if (is_pair(t))
+ return car(t);
else
return PMT_NIL;
}
pmt_t
-pmt_nthcdr(size_t n, pmt_t list)
+nthcdr(size_t n, pmt_t list)
{
- if (!(pmt_is_pair(list) || pmt_is_null(list)))
- throw pmt_wrong_type("pmt_nthcdr", list);
+ if (!(is_pair(list) || is_null(list)))
+ throw wrong_type("pmt_nthcdr", list);
while (n > 0){
- if (pmt_is_pair(list)){
- list = pmt_cdr(list);
+ if (is_pair(list)){
+ list = cdr(list);
n--;
continue;
}
- if (pmt_is_null(list))
+ if (is_null(list))
return PMT_NIL;
else
- throw pmt_wrong_type("pmt_nthcdr: not a LIST", list);
+ throw wrong_type("pmt_nthcdr: not a LIST", list);
}
return list;
}
pmt_t
-pmt_memq(pmt_t obj, pmt_t list)
+memq(pmt_t obj, pmt_t list)
{
- while (pmt_is_pair(list)){
- if (pmt_eq(obj, pmt_car(list)))
+ while (is_pair(list)){
+ if (eq(obj, car(list)))
return list;
- list = pmt_cdr(list);
+ list = cdr(list);
}
return PMT_F;
}
pmt_t
-pmt_memv(pmt_t obj, pmt_t list)
+memv(pmt_t obj, pmt_t list)
{
- while (pmt_is_pair(list)){
- if (pmt_eqv(obj, pmt_car(list)))
+ while (is_pair(list)){
+ if (eqv(obj, car(list)))
return list;
- list = pmt_cdr(list);
+ list = cdr(list);
}
return PMT_F;
}
pmt_t
-pmt_member(pmt_t obj, pmt_t list)
+member(pmt_t obj, pmt_t list)
{
- while (pmt_is_pair(list)){
- if (pmt_equal(obj, pmt_car(list)))
+ while (is_pair(list)){
+ if (equal(obj, car(list)))
return list;
- list = pmt_cdr(list);
+ list = cdr(list);
}
return PMT_F;
}
bool
-pmt_subsetp(pmt_t list1, pmt_t list2)
+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)))
+ while (is_pair(list1)){
+ pmt_t p = car(list1);
+ if (is_false(memv(p, list2)))
return false;
- list1 = pmt_cdr(list1);
+ list1 = cdr(list1);
}
return true;
}
pmt_t
-pmt_list1(const pmt_t& x1)
+list1(const pmt_t& x1)
{
- return pmt_cons(x1, PMT_NIL);
+ return cons(x1, PMT_NIL);
}
pmt_t
-pmt_list2(const pmt_t& x1, const pmt_t& x2)
+list2(const pmt_t& x1, const pmt_t& x2)
{
- return pmt_cons(x1, pmt_cons(x2, PMT_NIL));
+ return cons(x1, cons(x2, PMT_NIL));
}
pmt_t
-pmt_list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3)
+list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3)
{
- return pmt_cons(x1, pmt_cons(x2, pmt_cons(x3, PMT_NIL)));
+ return cons(x1, cons(x2, cons(x3, PMT_NIL)));
}
pmt_t
-pmt_list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4)
+list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4)
{
- return pmt_cons(x1, pmt_cons(x2, pmt_cons(x3, pmt_cons(x4, PMT_NIL))));
+ return cons(x1, cons(x2, cons(x3, cons(x4, PMT_NIL))));
}
pmt_t
-pmt_list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5)
+list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5)
{
- return pmt_cons(x1, pmt_cons(x2, pmt_cons(x3, pmt_cons(x4, pmt_cons(x5, PMT_NIL)))));
+ return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, PMT_NIL)))));
}
pmt_t
-pmt_list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6)
+list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6)
{
- return pmt_cons(x1, pmt_cons(x2, pmt_cons(x3, pmt_cons(x4, pmt_cons(x5, pmt_cons(x6, PMT_NIL))))));
+ return cons(x1, cons(x2, cons(x3, cons(x4, cons(x5, cons(x6, PMT_NIL))))));
}
pmt_t
-pmt_list_add(pmt_t list, const pmt_t& item)
+list_add(pmt_t list, const pmt_t& item)
{
- return pmt_reverse(pmt_cons(item, pmt_reverse(list)));
+ return reverse(cons(item, reverse(list)));
}
pmt_t
-pmt_list_rm(pmt_t list, const pmt_t& item)
+list_rm(pmt_t list, const pmt_t& item)
{
- if(pmt_is_pair(list)){
- pmt_t left = pmt_car(list);
- pmt_t right = pmt_cdr(list);
- if(!pmt_equal(left, item)){
- return pmt_cons(left, pmt_list_rm(right, item));
+ if(is_pair(list)){
+ pmt_t left = car(list);
+ pmt_t right = cdr(list);
+ if(!equal(left, item)){
+ return cons(left, list_rm(right, item));
} else {
- return pmt_list_rm(right, item);
+ return list_rm(right, item);
}
} else {
return list;
@@ -1351,65 +1358,65 @@ pmt_list_rm(pmt_t list, const pmt_t& item)
}
bool
-pmt_list_has(pmt_t list, const pmt_t& item)
+list_has(pmt_t list, const pmt_t& item)
{
- if(pmt_is_pair(list)){
- pmt_t left = pmt_car(list);
- pmt_t right = pmt_cdr(list);
- if(pmt_equal(left,item))
+ if(is_pair(list)){
+ pmt_t left = car(list);
+ pmt_t right = cdr(list);
+ if(equal(left,item))
return true;
- return pmt_list_has(right, item);
+ return list_has(right, item);
} else {
- if(pmt_is_null(list))
+ if(is_null(list))
return false;
throw std::runtime_error("list contains invalid format!");
}
}
pmt_t
-pmt_caar(pmt_t pair)
+caar(pmt_t pair)
{
- return (pmt_car(pmt_car(pair)));
+ return (car(car(pair)));
}
pmt_t
-pmt_cadr(pmt_t pair)
+cadr(pmt_t pair)
{
- return pmt_car(pmt_cdr(pair));
+ return car(cdr(pair));
}
pmt_t
-pmt_cdar(pmt_t pair)
+cdar(pmt_t pair)
{
- return pmt_cdr(pmt_car(pair));
+ return cdr(car(pair));
}
pmt_t
-pmt_cddr(pmt_t pair)
+cddr(pmt_t pair)
{
- return pmt_cdr(pmt_cdr(pair));
+ return cdr(cdr(pair));
}
pmt_t
-pmt_caddr(pmt_t pair)
+caddr(pmt_t pair)
{
- return pmt_car(pmt_cdr(pmt_cdr(pair)));
+ return car(cdr(cdr(pair)));
}
pmt_t
-pmt_cadddr(pmt_t pair)
+cadddr(pmt_t pair)
{
- return pmt_car(pmt_cdr(pmt_cdr(pmt_cdr(pair))));
+ return car(cdr(cdr(cdr(pair))));
}
bool
-pmt_is_eof_object(pmt_t obj)
+is_eof_object(pmt_t obj)
{
- return pmt_eq(obj, PMT_EOF);
+ return eq(obj, PMT_EOF);
}
void
-pmt_dump_sizeof()
+dump_sizeof()
{
printf("sizeof(pmt_t) = %3zd\n", sizeof(pmt_t));
printf("sizeof(pmt_base) = %3zd\n", sizeof(pmt_base));
diff --git a/gruel/src/lib/pmt/pmt_io.cc b/gruel/src/lib/pmt/pmt_io.cc
index 4bac4a0ecb..2e853b9147 100644
--- a/gruel/src/lib/pmt/pmt_io.cc
+++ b/gruel/src/lib/pmt/pmt_io.cc
@@ -31,84 +31,84 @@
namespace pmt {
static void
-pmt_write_list_tail(pmt_t obj, std::ostream &port)
+write_list_tail(pmt_t obj, std::ostream &port)
{
- pmt_write(pmt_car(obj), port); // write the car
- obj = pmt_cdr(obj); // step to cdr
+ write(car(obj), port); // write the car
+ obj = cdr(obj); // step to cdr
- if (pmt_is_null(obj)) // ()
+ if (is_null(obj)) // ()
port << ")";
- else if (pmt_is_pair(obj)){ // normal list
+ else if (is_pair(obj)){ // normal list
port << " ";
- pmt_write_list_tail(obj, port);
+ write_list_tail(obj, port);
}
else { // dotted pair
port << " . ";
- pmt_write(obj, port);
+ write(obj, port);
port << ")";
}
}
void
-pmt_write(pmt_t obj, std::ostream &port)
+write(pmt_t obj, std::ostream &port)
{
- if (pmt_is_bool(obj)){
- if (pmt_is_true(obj))
+ if (is_bool(obj)){
+ if (is_true(obj))
port << "#t";
else
port << "#f";
}
- else if (pmt_is_symbol(obj)){
- port << pmt_symbol_to_string(obj);
+ else if (is_symbol(obj)){
+ port << symbol_to_string(obj);
}
- else if (pmt_is_number(obj)){
- if (pmt_is_integer(obj))
- port << pmt_to_long(obj);
- else if (pmt_is_uint64(obj))
- port << pmt_to_uint64(obj);
- else if (pmt_is_real(obj))
- port << pmt_to_double(obj);
- else if (pmt_is_complex(obj)){
- std::complex<double> c = pmt_to_complex(obj);
+ else if (is_number(obj)){
+ if (is_integer(obj))
+ port << to_long(obj);
+ else if (is_uint64(obj))
+ port << to_uint64(obj);
+ else if (is_real(obj))
+ port << to_double(obj);
+ else if (is_complex(obj)){
+ std::complex<double> c = to_complex(obj);
port << c.real() << '+' << c.imag() << 'i';
}
else
goto error;
}
- else if (pmt_is_null(obj)){
+ else if (is_null(obj)){
port << "()";
}
- else if (pmt_is_pair(obj)){
+ else if (is_pair(obj)){
port << "(";
- pmt_write_list_tail(obj, port);
+ write_list_tail(obj, port);
}
- else if (pmt_is_tuple(obj)){
+ else if (is_tuple(obj)){
port << "{";
- size_t len = pmt_length(obj);
+ size_t len = length(obj);
if (len > 0){
- port << pmt_tuple_ref(obj, 0);
+ port << tuple_ref(obj, 0);
for (size_t i = 1; i < len; i++)
- port << " " << pmt_tuple_ref(obj, i);
+ port << " " << tuple_ref(obj, i);
}
port << "}";
}
- else if (pmt_is_vector(obj)){
+ else if (is_vector(obj)){
port << "#(";
- size_t len = pmt_length(obj);
+ size_t len = length(obj);
if (len > 0){
- port << pmt_vector_ref(obj, 0);
+ port << vector_ref(obj, 0);
for (size_t i = 1; i < len; i++)
- port << " " << pmt_vector_ref(obj, i);
+ port << " " << vector_ref(obj, i);
}
port << ")";
}
- else if (pmt_is_dict(obj)){
+ else if (is_dict(obj)){
// FIXME
// port << "#<dict " << obj << ">";
port << "#<dict>";
}
- else if (pmt_is_uniform_vector(obj)){
+ else if (is_uniform_vector(obj)){
// FIXME
// port << "#<uniform-vector " << obj << ">";
port << "#<uniform-vector>";
@@ -123,12 +123,12 @@ pmt_write(pmt_t obj, std::ostream &port)
std::ostream& operator<<(std::ostream &os, pmt_t obj)
{
- pmt_write(obj, os);
+ write(obj, os);
return os;
}
std::string
-pmt_write_string(pmt_t obj)
+write_string(pmt_t obj)
{
std::ostringstream s;
s << obj;
@@ -136,33 +136,33 @@ pmt_write_string(pmt_t obj)
}
pmt_t
-pmt_read(std::istream &port)
+read(std::istream &port)
{
- throw pmt_notimplemented("notimplemented: pmt_read", PMT_NIL);
+ throw notimplemented("notimplemented: pmt::read", PMT_NIL);
}
void
-pmt_serialize(pmt_t obj, std::ostream &sink)
+serialize(pmt_t obj, std::ostream &sink)
{
- throw pmt_notimplemented("notimplemented: pmt_serialize", obj);
+ throw notimplemented("notimplemented: pmt::serialize", obj);
}
/*!
* \brief Create obj from portable byte-serial representation
*/
pmt_t
-pmt_deserialize(std::istream &source)
+deserialize(std::istream &source)
{
- throw pmt_notimplemented("notimplemented: pmt_deserialize", PMT_NIL);
+ throw notimplemented("notimplemented: pmt::deserialize", PMT_NIL);
}
} /* namespace pmt */
void
-pmt::pmt_print(pmt_t v)
+pmt::print(pmt_t v)
{
- std::cout << pmt_write_string(v) << std::endl;
+ std::cout << write_string(v) << std::endl;
}
diff --git a/gruel/src/lib/pmt/pmt_serialize.cc b/gruel/src/lib/pmt/pmt_serialize.cc
index 24be6b772c..2c74f30b01 100644
--- a/gruel/src/lib/pmt/pmt_serialize.cc
+++ b/gruel/src/lib/pmt/pmt_serialize.cc
@@ -219,15 +219,16 @@ deserialize_tuple(pmt_t *tuple, std::streambuf &sb)
uint32_t nitems;
bool ok = deserialize_untagged_u32(&nitems, sb);
pmt_t list(PMT_NIL);
- for(uint32_t i=0; i<nitems; i++){
- pmt_t item = pmt_deserialize( sb );
- if(pmt_eq(list, PMT_NIL)){
- list = pmt_list1(item);
- } else {
- list = pmt_list_add(list, item);
- }
+ for(uint32_t i=0; i<nitems; i++) {
+ pmt_t item = deserialize(sb);
+ if(eq(list, PMT_NIL)) {
+ list = list1(item);
+ }
+ else {
+ list = list_add(list, item);
+ }
}
- (*tuple) = pmt_to_tuple(list);
+ (*tuple) = to_tuple(list);
return ok;
}
@@ -238,92 +239,93 @@ deserialize_tuple(pmt_t *tuple, std::streambuf &sb)
* N.B., Circular structures cause infinite recursion.
*/
bool
-pmt_serialize(pmt_t obj, std::streambuf &sb)
+serialize(pmt_t obj, std::streambuf &sb)
{
bool ok = true;
tail_recursion:
- if (pmt_is_bool(obj)){
- if (pmt_eq(obj, PMT_T))
+ if(is_bool(obj)) {
+ if(eq(obj, PMT_T))
return serialize_untagged_u8(PST_TRUE, sb);
else
return serialize_untagged_u8(PST_FALSE, sb);
}
- if (pmt_is_null(obj))
+ if(is_null(obj))
return serialize_untagged_u8(PST_NULL, sb);
- if (pmt_is_symbol(obj)){
- const std::string s = pmt_symbol_to_string(obj);
+ if(is_symbol(obj)) {
+ const std::string s = symbol_to_string(obj);
size_t len = s.size();
ok = serialize_untagged_u8(PST_SYMBOL, sb);
ok &= serialize_untagged_u16(len, sb);
- for (size_t i = 0; i < len; i++)
+ for(size_t i = 0; i < len; i++)
ok &= serialize_untagged_u8(s[i], sb);
return ok;
}
- if (pmt_is_pair(obj)){
+ if(is_pair(obj)) {
ok = serialize_untagged_u8(PST_PAIR, sb);
- ok &= pmt_serialize(pmt_car(obj), sb);
- if (!ok)
+ ok &= serialize(car(obj), sb);
+ if(!ok)
return false;
- obj = pmt_cdr(obj);
+ obj = cdr(obj);
goto tail_recursion;
}
- if (pmt_is_number(obj)){
+ if(is_number(obj)) {
- if (pmt_is_uint64(obj)){
- uint64_t i = pmt_to_uint64(obj);
+ if(is_uint64(obj)) {
+ uint64_t i = to_uint64(obj);
ok = serialize_untagged_u8(PST_UINT64, sb);
ok &= serialize_untagged_u64(i, sb);
return ok;
- } else
- if (pmt_is_integer(obj)){
- long i = pmt_to_long(obj);
- if (sizeof(long) > 4){
- if (i < -2147483647 || i > 2147483647)
- throw pmt_notimplemented("pmt_serialize (64-bit integers)", obj);
+ }
+ else {
+ if(is_integer(obj)) {
+ long i = to_long(obj);
+ if(sizeof(long) > 4) {
+ if(i < -2147483647 || i > 2147483647)
+ throw notimplemented("pmt::serialize (64-bit integers)", obj);
+ }
+ ok = serialize_untagged_u8(PST_INT32, sb);
+ ok &= serialize_untagged_u32(i, sb);
+ return ok;
}
- ok = serialize_untagged_u8(PST_INT32, sb);
- ok &= serialize_untagged_u32(i, sb);
- return ok;
}
- if (pmt_is_real(obj)){
- float i = pmt_to_double(obj);
+ if(is_real(obj)) {
+ float i = to_double(obj);
ok = serialize_untagged_u8(PST_DOUBLE, sb);
ok &= serialize_untagged_f64(i, sb);
return ok;
}
- if (pmt_is_complex(obj)){
- std::complex<double> i = pmt_to_complex(obj);
+ if(is_complex(obj)) {
+ std::complex<double> i = to_complex(obj);
ok = serialize_untagged_u8(PST_COMPLEX, sb);
ok &= serialize_untagged_f64(i.real(), sb);
ok &= serialize_untagged_f64(i.imag(), sb);
return ok;
}
-
}
- if (pmt_is_vector(obj)) {
- size_t vec_len = pmt::pmt_length(obj);
+ if(is_vector(obj)) {
+ size_t vec_len = pmt::length(obj);
ok = serialize_untagged_u8(PST_VECTOR, sb);
ok &= serialize_untagged_u32(vec_len, sb);
for(size_t i=0; i<vec_len; i++) {
- ok &= pmt_serialize(pmt_vector_ref(obj, i), sb);
+ ok &= serialize(vector_ref(obj, i), sb);
}
return ok;
}
- if (pmt_is_uniform_vector(obj)) {
+ if(is_uniform_vector(obj)) {
size_t npad = 1;
- size_t vec_len = pmt::pmt_length(obj);
+ size_t vec_len = pmt::length(obj);
- if(pmt_is_u8vector(obj)) {
+ if(is_u8vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_U8, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -332,12 +334,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u8(pmt_u8vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u8(u8vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_s8vector(obj)) {
+ if(is_s8vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_S8, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -346,12 +348,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u8(pmt_s8vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u8(s8vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_u16vector(obj)) {
+ if(is_u16vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_U16, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -360,12 +362,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u16(pmt_u16vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u16(u16vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_s16vector(obj)) {
+ if(is_s16vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_S16, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -374,12 +376,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u16(pmt_s16vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u16(s16vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_u32vector(obj)) {
+ if(is_u32vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_U32, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -388,12 +390,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u32(pmt_u32vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u32(u32vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_s32vector(obj)) {
+ if(is_s32vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_S32, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -402,12 +404,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u32(pmt_s32vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u32(s32vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_u64vector(obj)) {
+ if(is_u64vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_U64, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -416,12 +418,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u64(pmt_u64vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u64(u64vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_s64vector(obj)) {
+ if(is_s64vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_S64, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -430,12 +432,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_u64(pmt_s64vector_ref(obj, i), sb);
+ ok &= serialize_untagged_u64(s64vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_f32vector(obj)) {
+ if(is_f32vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_F32, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -444,12 +446,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_f64(pmt_f32vector_ref(obj, i), sb);
+ ok &= serialize_untagged_f64(f32vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_f64vector(obj)) {
+ if(is_f64vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_F64, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -458,12 +460,12 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- ok &= serialize_untagged_f64(pmt_f64vector_ref(obj, i), sb);
+ ok &= serialize_untagged_f64(f64vector_ref(obj, i), sb);
}
return ok;
}
- if(pmt_is_c32vector(obj)) {
+ if(is_c32vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_C32, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -472,14 +474,14 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- std::complex<float> c = pmt_c32vector_ref(obj, i);
+ std::complex<float> c = c32vector_ref(obj, i);
ok &= serialize_untagged_f64(c.real(), sb);
ok &= serialize_untagged_f64(c.imag(), sb);
}
return ok;
}
- if(pmt_is_c64vector(obj)) {
+ if(is_c64vector(obj)) {
ok = serialize_untagged_u8(PST_UNIFORM_VECTOR, sb);
ok &= serialize_untagged_u8(UVI_C64, sb);
ok &= serialize_untagged_u32(vec_len, sb);
@@ -488,7 +490,7 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
ok &= serialize_untagged_u8(0, sb);
}
for(size_t i=0; i<vec_len; i++) {
- std::complex<double> c = pmt_c64vector_ref(obj, i);
+ std::complex<double> c = c64vector_ref(obj, i);
ok &= serialize_untagged_f64(c.real(), sb);
ok &= serialize_untagged_f64(c.imag(), sb);
}
@@ -496,21 +498,21 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
}
}
- if (pmt_is_dict(obj))
- throw pmt_notimplemented("pmt_serialize (dict)", obj);
+ if (is_dict(obj))
+ throw notimplemented("pmt::serialize (dict)", obj);
- if (pmt_is_tuple(obj)){
- size_t tuple_len = pmt::pmt_length(obj);
+ if (is_tuple(obj)){
+ size_t tuple_len = pmt::length(obj);
ok = serialize_untagged_u8(PST_TUPLE, sb);
ok &= serialize_untagged_u32(tuple_len, sb);
for(size_t i=0; i<tuple_len; i++){
- ok &= pmt_serialize(pmt_tuple_ref(obj, i), sb);
+ ok &= serialize(tuple_ref(obj, i), sb);
}
return ok;
}
- //throw pmt_notimplemented("pmt_serialize (tuple)", obj);
+ //throw pmt_notimplemented("pmt::serialize (tuple)", obj);
- throw pmt_notimplemented("pmt_serialize (?)", obj);
+ throw notimplemented("pmt::serialize (?)", obj);
}
/*
@@ -520,7 +522,7 @@ pmt_serialize(pmt_t obj, std::streambuf &sb)
* Throws exception on malformed input.
*/
pmt_t
-pmt_deserialize(std::streambuf &sb)
+deserialize(std::streambuf &sb)
{
uint8_t tag;
uint8_t u8;
@@ -547,21 +549,21 @@ pmt_deserialize(std::streambuf &sb)
if (!deserialize_untagged_u16(&u16, sb))
goto error;
if (u16 > sizeof(tmpbuf))
- throw pmt_notimplemented("pmt_deserialize: very long symbol",
- PMT_F);
+ throw notimplemented("pmt::deserialize: very long symbol",
+ PMT_F);
if (sb.sgetn(tmpbuf, u16) != u16)
goto error;
- return pmt_intern(std::string(tmpbuf, u16));
+ return intern(std::string(tmpbuf, u16));
case PST_INT32:
if (!deserialize_untagged_u32(&u32, sb))
goto error;
- return pmt_from_long((int32_t) u32);
+ return from_long((int32_t) u32);
case PST_UINT64:
if(!deserialize_untagged_u64(&u64, sb))
goto error;
- return pmt_from_uint64(u64);
+ return from_uint64(u64);
case PST_PAIR:
return parse_pair(sb);
@@ -569,14 +571,14 @@ pmt_deserialize(std::streambuf &sb)
case PST_DOUBLE:
if(!deserialize_untagged_f64(&f64, sb))
goto error;
- return pmt_from_double( f64 );
+ return from_double( f64 );
case PST_COMPLEX:
{
double r,i;
if(!deserialize_untagged_f64(&r, sb) && !deserialize_untagged_f64(&i, sb))
goto error;
- return pmt_make_rectangular( r,i );
+ return make_rectangular( r,i );
}
case PST_TUPLE:
@@ -593,10 +595,10 @@ pmt_deserialize(std::streambuf &sb)
uint32_t nitems;
if(!deserialize_untagged_u32(&nitems, sb))
goto error;
- pmt_t vec = pmt_make_vector(nitems, PMT_NIL);
+ pmt_t vec = make_vector(nitems, PMT_NIL);
for(uint32_t i=0; i<nitems; i++) {
- pmt_t item = pmt_deserialize(sb);
- pmt_vector_set(vec, i, item);
+ pmt_t item = deserialize(sb);
+ vector_set(vec, i, item);
}
return vec;
}
@@ -619,149 +621,150 @@ pmt_deserialize(std::streambuf &sb)
switch(utag) {
case(UVI_U8):
{
- pmt_t vec = pmt_make_u8vector(nitems, 0);
+ pmt_t vec = make_u8vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u8(&u8, sb);
- pmt_u8vector_set(vec, i, u8);
+ u8vector_set(vec, i, u8);
}
return vec;
}
case(UVI_S8):
{
- pmt_t vec = pmt_make_s8vector(nitems, 0);
+ pmt_t vec = make_s8vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u8(&u8, sb);
- pmt_s8vector_set(vec, i, u8);
+ s8vector_set(vec, i, u8);
}
return vec;
}
case(UVI_U16):
{
- pmt_t vec = pmt_make_u16vector(nitems, 0);
+ pmt_t vec = make_u16vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u16(&u16, sb);
- pmt_u16vector_set(vec, i, u16);
+ u16vector_set(vec, i, u16);
}
return vec;
}
case(UVI_S16):
{
- pmt_t vec = pmt_make_s16vector(nitems, 0);
+ pmt_t vec = make_s16vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u16(&u16, sb);
- pmt_s16vector_set(vec, i, u16);
+ s16vector_set(vec, i, u16);
}
return vec;
}
case(UVI_U32):
{
- pmt_t vec = pmt_make_u32vector(nitems, 0);
+ pmt_t vec = make_u32vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u32(&u32, sb);
- pmt_u32vector_set(vec, i, u32);
+ u32vector_set(vec, i, u32);
}
return vec;
}
case(UVI_S32):
{
- pmt_t vec = pmt_make_s32vector(nitems, 0);
+ pmt_t vec = make_s32vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u32(&u32, sb);
- pmt_s32vector_set(vec, i, u32);
+ s32vector_set(vec, i, u32);
}
return vec;
}
case(UVI_U64):
{
- pmt_t vec = pmt_make_u64vector(nitems, 0);
+ pmt_t vec = make_u64vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u64(&u64, sb);
- pmt_u64vector_set(vec, i, u64);
+ u64vector_set(vec, i, u64);
}
return vec;
}
case(UVI_S64):
{
- pmt_t vec = pmt_make_s64vector(nitems, 0);
+ pmt_t vec = make_s64vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_u64(&u64, sb);
- pmt_s64vector_set(vec, i, u64);
+ s64vector_set(vec, i, u64);
}
return vec;
}
case(UVI_F32):
{
- pmt_t vec = pmt_make_f32vector(nitems, 0);
+ pmt_t vec = make_f32vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_f64(&f64, sb);
- pmt_f32vector_set(vec, i, static_cast<float>(f64));
+ f32vector_set(vec, i, static_cast<float>(f64));
}
return vec;
}
case(UVI_F64):
{
- pmt_t vec = pmt_make_f64vector(nitems, 0);
+ pmt_t vec = make_f64vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
deserialize_untagged_f64(&f64, sb);
- pmt_f64vector_set(vec, i, f64);
+ f64vector_set(vec, i, f64);
}
return vec;
}
case(UVI_C32):
{
- pmt_t vec = pmt_make_c32vector(nitems, 0);
+ pmt_t vec = make_c32vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
float re, im;
deserialize_untagged_f64(&f64, sb);
re = static_cast<float>(f64);
deserialize_untagged_f64(&f64, sb);
im = static_cast<float>(f64);
- pmt_c32vector_set(vec, i, std::complex<float>(re, im));
+ c32vector_set(vec, i, std::complex<float>(re, im));
}
return vec;
}
case(UVI_C64):
{
- pmt_t vec = pmt_make_c64vector(nitems, 0);
+ pmt_t vec = make_c64vector(nitems, 0);
for(uint32_t i=0; i<nitems; i++) {
double re, im;
deserialize_untagged_f64(&f64, sb);
re = f64;
deserialize_untagged_f64(&f64, sb);
im = f64;
- pmt_c64vector_set(vec, i, std::complex<double>(re, im));
+ c64vector_set(vec, i, std::complex<double>(re, im));
}
return vec;
}
default:
- throw pmt_exception("pmt_deserialize: malformed input stream, tag value = ",
- pmt_from_long(tag));
+ throw exception("pmt::deserialize: malformed input stream, tag value = ",
+ from_long(tag));
}
}
case PST_DICT:
case PST_COMMENT:
- throw pmt_notimplemented("pmt_deserialize: tag value = ",
- pmt_from_long(tag));
+ throw notimplemented("pmt::deserialize: tag value = ",
+ from_long(tag));
default:
- throw pmt_exception("pmt_deserialize: malformed input stream, tag value = ",
- pmt_from_long(tag));
+ throw exception("pmt::deserialize: malformed input stream, tag value = ",
+ from_long(tag));
}
error:
- throw pmt_exception("pmt_deserialize: malformed input stream", PMT_F);
+ throw exception("pmt::deserialize: malformed input stream", PMT_F);
}
/*
* provide a simple string accessor to the serialized pmt form
*/
-std::string pmt_serialize_str(pmt_t obj){
+std::string
+serialize_str(pmt_t obj){
std::stringbuf sb;
- pmt_serialize(obj, sb);
+ serialize(obj, sb);
return sb.str();
}
@@ -769,9 +772,10 @@ std::string pmt_serialize_str(pmt_t obj){
/*
* provide a simple string accessor to the deserialized pmt form
*/
-pmt_t pmt_deserialize_str(std::string s){
+pmt_t
+deserialize_str(std::string s){
std::stringbuf sb(s);
- return pmt_deserialize(sb);
+ return deserialize(sb);
}
@@ -792,17 +796,17 @@ parse_pair(std::streambuf &sb)
//
lastnptr = PMT_NIL;
while (1){
- expr = pmt_deserialize(sb); // read the car
+ expr = deserialize(sb); // read the car
- nptr = pmt_cons(expr, PMT_NIL); // build new cell
- if (pmt_is_null(lastnptr))
+ nptr = cons(expr, PMT_NIL); // build new cell
+ if (is_null(lastnptr))
val = nptr;
else
- pmt_set_cdr(lastnptr, nptr);
+ set_cdr(lastnptr, nptr);
lastnptr = nptr;
if (!deserialize_untagged_u8(&tag, sb)) // get tag of cdr
- throw pmt_exception("pmt_deserialize: malformed input stream", PMT_F);
+ throw exception("pmt::deserialize: malformed input stream", PMT_F);
if (tag == PST_PAIR)
continue; // keep on looping...
@@ -816,14 +820,14 @@ parse_pair(std::streambuf &sb)
// default: push tag back and use pmt_deserialize to get the cdr
//
sb.sungetc();
- expr = pmt_deserialize(sb);
+ expr = deserialize(sb);
break;
}
//
// At this point, expr contains the value of the final cdr in the list.
//
- pmt_set_cdr(lastnptr, expr);
+ set_cdr(lastnptr, expr);
return val;
}
diff --git a/gruel/src/lib/pmt/qa_pmt_prims.cc b/gruel/src/lib/pmt/qa_pmt_prims.cc
index 3ae4d70b6d..85d29cf78f 100644
--- a/gruel/src/lib/pmt/qa_pmt_prims.cc
+++ b/gruel/src/lib/pmt/qa_pmt_prims.cc
@@ -28,35 +28,33 @@
#include <cstring>
#include <sstream>
-using namespace pmt;
-
void
qa_pmt_prims::test_symbols()
{
- CPPUNIT_ASSERT(!pmt_is_symbol(PMT_T));
- CPPUNIT_ASSERT(!pmt_is_symbol(PMT_F));
- CPPUNIT_ASSERT_THROW(pmt_symbol_to_string(PMT_F), pmt_wrong_type);
-
- pmt_t sym1 = mp("test");
- CPPUNIT_ASSERT(pmt_is_symbol(sym1));
- CPPUNIT_ASSERT_EQUAL(std::string("test"), pmt_symbol_to_string(sym1));
- CPPUNIT_ASSERT(pmt_is_true(sym1));
- CPPUNIT_ASSERT(!pmt_is_false(sym1));
-
- pmt_t sym2 = mp("foo");
- pmt_t sym3 = mp("test");
+ CPPUNIT_ASSERT(!pmt::is_symbol(pmt::PMT_T));
+ CPPUNIT_ASSERT(!pmt::is_symbol(pmt::PMT_F));
+ CPPUNIT_ASSERT_THROW(pmt::symbol_to_string(pmt::PMT_F), pmt::wrong_type);
+
+ pmt::pmt_t sym1 = pmt::mp("test");
+ CPPUNIT_ASSERT(pmt::is_symbol(sym1));
+ CPPUNIT_ASSERT_EQUAL(std::string("test"), pmt::symbol_to_string(sym1));
+ CPPUNIT_ASSERT(pmt::is_true(sym1));
+ CPPUNIT_ASSERT(!pmt::is_false(sym1));
+
+ pmt::pmt_t sym2 = pmt::mp("foo");
+ pmt::pmt_t sym3 = pmt::mp("test");
CPPUNIT_ASSERT_EQUAL(sym1, sym3);
CPPUNIT_ASSERT(sym1 != sym2);
CPPUNIT_ASSERT(sym1 == sym3);
static const int N = 2048;
- std::vector<pmt_t> v1(N);
- std::vector<pmt_t> v2(N);
+ std::vector<pmt::pmt_t> v1(N);
+ std::vector<pmt::pmt_t> v2(N);
// generate a bunch of symbols
for (int i = 0; i < N; i++){
std::string buf = str(boost::format("test-%d") % i);
- v1[i] = mp(buf.c_str());
+ v1[i] = pmt::mp(buf.c_str());
}
// confirm that they are all unique
@@ -67,7 +65,7 @@ qa_pmt_prims::test_symbols()
// generate the same symbols again
for (int i = 0; i < N; i++){
std::string buf = str(boost::format("test-%d") % i);
- v2[i] = mp(buf.c_str());
+ v2[i] = pmt::mp(buf.c_str());
}
// confirm that we get the same ones back
@@ -78,355 +76,355 @@ qa_pmt_prims::test_symbols()
void
qa_pmt_prims::test_booleans()
{
- pmt_t sym = mp("test");
- CPPUNIT_ASSERT(pmt_is_bool(PMT_T));
- CPPUNIT_ASSERT(pmt_is_bool(PMT_F));
- CPPUNIT_ASSERT(!pmt_is_bool(sym));
- CPPUNIT_ASSERT_EQUAL(pmt_from_bool(false), PMT_F);
- CPPUNIT_ASSERT_EQUAL(pmt_from_bool(true), PMT_T);
- CPPUNIT_ASSERT_EQUAL(false, pmt_to_bool(PMT_F));
- CPPUNIT_ASSERT_EQUAL(true, pmt_to_bool(PMT_T));
- CPPUNIT_ASSERT_THROW(pmt_to_bool(sym), pmt_wrong_type);
+ pmt::pmt_t sym = pmt::mp("test");
+ CPPUNIT_ASSERT(pmt::is_bool(pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::is_bool(pmt::PMT_F));
+ CPPUNIT_ASSERT(!pmt::is_bool(sym));
+ CPPUNIT_ASSERT_EQUAL(pmt::from_bool(false), pmt::PMT_F);
+ CPPUNIT_ASSERT_EQUAL(pmt::from_bool(true), pmt::PMT_T);
+ CPPUNIT_ASSERT_EQUAL(false, pmt::to_bool(pmt::PMT_F));
+ CPPUNIT_ASSERT_EQUAL(true, pmt::to_bool(pmt::PMT_T));
+ CPPUNIT_ASSERT_THROW(pmt::to_bool(sym), pmt::wrong_type);
}
void
qa_pmt_prims::test_integers()
{
- pmt_t p1 = pmt_from_long(1);
- pmt_t m1 = pmt_from_long(-1);
- CPPUNIT_ASSERT(!pmt_is_integer(PMT_T));
- CPPUNIT_ASSERT(pmt_is_integer(p1));
- CPPUNIT_ASSERT(pmt_is_integer(m1));
- CPPUNIT_ASSERT_THROW(pmt_to_long(PMT_T), pmt_wrong_type);
- CPPUNIT_ASSERT_EQUAL(-1L, pmt_to_long(m1));
- CPPUNIT_ASSERT_EQUAL(1L, pmt_to_long(p1));
+ pmt::pmt_t p1 = pmt::from_long(1);
+ pmt::pmt_t m1 = pmt::from_long(-1);
+ CPPUNIT_ASSERT(!pmt::is_integer(pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::is_integer(p1));
+ CPPUNIT_ASSERT(pmt::is_integer(m1));
+ CPPUNIT_ASSERT_THROW(pmt::to_long(pmt::PMT_T), pmt::wrong_type);
+ CPPUNIT_ASSERT_EQUAL(-1L, pmt::to_long(m1));
+ CPPUNIT_ASSERT_EQUAL(1L, pmt::to_long(p1));
}
void
qa_pmt_prims::test_uint64s()
{
- pmt_t p1 = pmt_from_uint64((uint64_t)1);
- pmt_t m1 = pmt_from_uint64((uint64_t)8589934592ULL);
- CPPUNIT_ASSERT(!pmt_is_uint64(PMT_T));
- CPPUNIT_ASSERT(pmt_is_uint64(p1));
- CPPUNIT_ASSERT(pmt_is_uint64(m1));
- CPPUNIT_ASSERT_THROW(pmt_to_uint64(PMT_T), pmt_wrong_type);
- CPPUNIT_ASSERT_EQUAL((uint64_t)8589934592ULL, (uint64_t)pmt_to_uint64(m1));
- CPPUNIT_ASSERT_EQUAL((uint64_t)1ULL, (uint64_t)pmt_to_uint64(p1));
+ pmt::pmt_t p1 = pmt::from_uint64((uint64_t)1);
+ pmt::pmt_t m1 = pmt::from_uint64((uint64_t)8589934592ULL);
+ CPPUNIT_ASSERT(!pmt::is_uint64(pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::is_uint64(p1));
+ CPPUNIT_ASSERT(pmt::is_uint64(m1));
+ CPPUNIT_ASSERT_THROW(pmt::to_uint64(pmt::PMT_T), pmt::wrong_type);
+ CPPUNIT_ASSERT_EQUAL((uint64_t)8589934592ULL, (uint64_t)pmt::to_uint64(m1));
+ CPPUNIT_ASSERT_EQUAL((uint64_t)1ULL, (uint64_t)pmt::to_uint64(p1));
}
void
qa_pmt_prims::test_reals()
{
- pmt_t p1 = pmt_from_double(1);
- pmt_t m1 = pmt_from_double(-1);
- CPPUNIT_ASSERT(!pmt_is_real(PMT_T));
- CPPUNIT_ASSERT(pmt_is_real(p1));
- CPPUNIT_ASSERT(pmt_is_real(m1));
- CPPUNIT_ASSERT_THROW(pmt_to_double(PMT_T), pmt_wrong_type);
- CPPUNIT_ASSERT_EQUAL(-1.0, pmt_to_double(m1));
- CPPUNIT_ASSERT_EQUAL(1.0, pmt_to_double(p1));
- CPPUNIT_ASSERT_EQUAL(1.0, pmt_to_double(pmt_from_long(1)));
+ pmt::pmt_t p1 = pmt::from_double(1);
+ pmt::pmt_t m1 = pmt::from_double(-1);
+ CPPUNIT_ASSERT(!pmt::is_real(pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::is_real(p1));
+ CPPUNIT_ASSERT(pmt::is_real(m1));
+ CPPUNIT_ASSERT_THROW(pmt::to_double(pmt::PMT_T), pmt::wrong_type);
+ CPPUNIT_ASSERT_EQUAL(-1.0, pmt::to_double(m1));
+ CPPUNIT_ASSERT_EQUAL(1.0, pmt::to_double(p1));
+ CPPUNIT_ASSERT_EQUAL(1.0, pmt::to_double(pmt::from_long(1)));
}
void
qa_pmt_prims::test_complexes()
{
- pmt_t p1 = pmt_make_rectangular(2, -3);
- pmt_t m1 = pmt_make_rectangular(-3, 2);
- pmt_t p2 = pmt_from_complex(2, -3);
- pmt_t m2 = pmt_from_complex(-3, 2);
- pmt_t p3 = pmt_from_complex(std::complex<double>(2, -3));
- pmt_t m3 = pmt_from_complex(std::complex<double>(-3, 2));
- CPPUNIT_ASSERT(!pmt_is_complex(PMT_T));
- CPPUNIT_ASSERT(pmt_is_complex(p1));
- CPPUNIT_ASSERT(pmt_is_complex(m1));
- CPPUNIT_ASSERT(pmt_is_complex(p2));
- CPPUNIT_ASSERT(pmt_is_complex(m2));
- CPPUNIT_ASSERT(pmt_is_complex(p3));
- CPPUNIT_ASSERT(pmt_is_complex(m3));
- CPPUNIT_ASSERT_THROW(pmt_to_complex(PMT_T), pmt_wrong_type);
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt_to_complex(p1));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt_to_complex(m1));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt_to_complex(p2));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt_to_complex(m2));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt_to_complex(p3));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt_to_complex(m3));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(1.0, 0), pmt_to_complex(pmt_from_long(1)));
- CPPUNIT_ASSERT_EQUAL(std::complex<double>(1.0, 0), pmt_to_complex(pmt_from_double(1.0)));
+ pmt::pmt_t p1 = pmt::make_rectangular(2, -3);
+ pmt::pmt_t m1 = pmt::make_rectangular(-3, 2);
+ pmt::pmt_t p2 = pmt::from_complex(2, -3);
+ pmt::pmt_t m2 = pmt::from_complex(-3, 2);
+ pmt::pmt_t p3 = pmt::from_complex(std::complex<double>(2, -3));
+ pmt::pmt_t m3 = pmt::from_complex(std::complex<double>(-3, 2));
+ CPPUNIT_ASSERT(!pmt::is_complex(pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::is_complex(p1));
+ CPPUNIT_ASSERT(pmt::is_complex(m1));
+ CPPUNIT_ASSERT(pmt::is_complex(p2));
+ CPPUNIT_ASSERT(pmt::is_complex(m2));
+ CPPUNIT_ASSERT(pmt::is_complex(p3));
+ CPPUNIT_ASSERT(pmt::is_complex(m3));
+ CPPUNIT_ASSERT_THROW(pmt::to_complex(pmt::PMT_T), pmt::wrong_type);
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p1));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m1));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p2));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m2));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, -3), pmt::to_complex(p3));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(-3, 2), pmt::to_complex(m3));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(1.0, 0), pmt::to_complex(pmt::from_long(1)));
+ CPPUNIT_ASSERT_EQUAL(std::complex<double>(1.0, 0), pmt::to_complex(pmt::from_double(1.0)));
}
void
qa_pmt_prims::test_pairs()
{
- CPPUNIT_ASSERT(pmt_is_null(PMT_NIL));
- CPPUNIT_ASSERT(!pmt_is_pair(PMT_NIL));
- pmt_t s1 = mp("s1");
- pmt_t s2 = mp("s2");
- pmt_t s3 = mp("s3");
-
-
- CPPUNIT_ASSERT_EQUAL((size_t)0, pmt_length(PMT_NIL));
- CPPUNIT_ASSERT_THROW(pmt_length(s1), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_length(pmt_from_double(42)), pmt_wrong_type);
-
- pmt_t c1 = pmt_cons(s1, PMT_NIL);
- CPPUNIT_ASSERT(pmt_is_pair(c1));
- CPPUNIT_ASSERT(!pmt_is_pair(s1));
- CPPUNIT_ASSERT_EQUAL(s1, pmt_car(c1));
- CPPUNIT_ASSERT_EQUAL(PMT_NIL, pmt_cdr(c1));
- CPPUNIT_ASSERT_EQUAL((size_t) 1, pmt_length(c1));
-
- pmt_t c3 = pmt_cons(s3, PMT_NIL);
- pmt_t c2 = pmt_cons(s2, c3);
- pmt_set_cdr(c1, c2);
- CPPUNIT_ASSERT_EQUAL(c2, pmt_cdr(c1));
- pmt_set_car(c1, s3);
- CPPUNIT_ASSERT_EQUAL(s3, pmt_car(c1));
- CPPUNIT_ASSERT_EQUAL((size_t)1, pmt_length(c3));
- CPPUNIT_ASSERT_EQUAL((size_t)2, pmt_length(c2));
-
- CPPUNIT_ASSERT_THROW(pmt_cdr(PMT_NIL), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_car(PMT_NIL), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_set_car(s1, PMT_NIL), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_set_cdr(s1, PMT_NIL), pmt_wrong_type);
+ CPPUNIT_ASSERT(pmt::is_null(pmt::PMT_NIL));
+ CPPUNIT_ASSERT(!pmt::is_pair(pmt::PMT_NIL));
+ pmt::pmt_t s1 = pmt::mp("s1");
+ pmt::pmt_t s2 = pmt::mp("s2");
+ pmt::pmt_t s3 = pmt::mp("s3");
+
+
+ CPPUNIT_ASSERT_EQUAL((size_t)0, pmt::length(pmt::PMT_NIL));
+ CPPUNIT_ASSERT_THROW(pmt::length(s1), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::length(pmt::from_double(42)), pmt::wrong_type);
+
+ pmt::pmt_t c1 = pmt::cons(s1, pmt::PMT_NIL);
+ CPPUNIT_ASSERT(pmt::is_pair(c1));
+ CPPUNIT_ASSERT(!pmt::is_pair(s1));
+ CPPUNIT_ASSERT_EQUAL(s1, pmt::car(c1));
+ CPPUNIT_ASSERT_EQUAL(pmt::PMT_NIL, pmt::cdr(c1));
+ CPPUNIT_ASSERT_EQUAL((size_t) 1, pmt::length(c1));
+
+ pmt::pmt_t c3 = pmt::cons(s3, pmt::PMT_NIL);
+ pmt::pmt_t c2 = pmt::cons(s2, c3);
+ pmt::set_cdr(c1, c2);
+ CPPUNIT_ASSERT_EQUAL(c2, pmt::cdr(c1));
+ pmt::set_car(c1, s3);
+ CPPUNIT_ASSERT_EQUAL(s3, pmt::car(c1));
+ CPPUNIT_ASSERT_EQUAL((size_t)1, pmt::length(c3));
+ CPPUNIT_ASSERT_EQUAL((size_t)2, pmt::length(c2));
+
+ CPPUNIT_ASSERT_THROW(pmt::cdr(pmt::PMT_NIL), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::car(pmt::PMT_NIL), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::set_car(s1, pmt::PMT_NIL), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::set_cdr(s1, pmt::PMT_NIL), pmt::wrong_type);
}
void
qa_pmt_prims::test_vectors()
{
static const size_t N = 3;
- pmt_t v1 = pmt_make_vector(N, PMT_NIL);
- CPPUNIT_ASSERT_EQUAL(N, pmt_length(v1));
- pmt_t s0 = mp("s0");
- pmt_t s1 = mp("s1");
- pmt_t s2 = mp("s2");
+ pmt::pmt_t v1 = pmt::make_vector(N, pmt::PMT_NIL);
+ CPPUNIT_ASSERT_EQUAL(N, pmt::length(v1));
+ pmt::pmt_t s0 = pmt::mp("s0");
+ pmt::pmt_t s1 = pmt::mp("s1");
+ pmt::pmt_t s2 = pmt::mp("s2");
- pmt_vector_set(v1, 0, s0);
- pmt_vector_set(v1, 1, s1);
- pmt_vector_set(v1, 2, s2);
+ pmt::vector_set(v1, 0, s0);
+ pmt::vector_set(v1, 1, s1);
+ pmt::vector_set(v1, 2, s2);
- CPPUNIT_ASSERT_EQUAL(s0, pmt_vector_ref(v1, 0));
- CPPUNIT_ASSERT_EQUAL(s1, pmt_vector_ref(v1, 1));
- CPPUNIT_ASSERT_EQUAL(s2, pmt_vector_ref(v1, 2));
+ CPPUNIT_ASSERT_EQUAL(s0, pmt::vector_ref(v1, 0));
+ CPPUNIT_ASSERT_EQUAL(s1, pmt::vector_ref(v1, 1));
+ CPPUNIT_ASSERT_EQUAL(s2, pmt::vector_ref(v1, 2));
- CPPUNIT_ASSERT_THROW(pmt_vector_ref(v1, N), pmt_out_of_range);
- CPPUNIT_ASSERT_THROW(pmt_vector_set(v1, N, PMT_NIL), pmt_out_of_range);
+ CPPUNIT_ASSERT_THROW(pmt::vector_ref(v1, N), pmt::out_of_range);
+ CPPUNIT_ASSERT_THROW(pmt::vector_set(v1, N, pmt::PMT_NIL), pmt::out_of_range);
- pmt_vector_fill(v1, s0);
+ pmt::vector_fill(v1, s0);
for (size_t i = 0; i < N; i++)
- CPPUNIT_ASSERT_EQUAL(s0, pmt_vector_ref(v1, i));
+ CPPUNIT_ASSERT_EQUAL(s0, pmt::vector_ref(v1, i));
}
static void
-check_tuple(size_t len, const std::vector<pmt_t> &s, pmt_t t)
+check_tuple(size_t len, const std::vector<pmt::pmt_t> &s, pmt::pmt_t t)
{
- CPPUNIT_ASSERT_EQUAL(true, pmt_is_tuple(t));
- CPPUNIT_ASSERT_EQUAL(len, pmt_length(t));
+ CPPUNIT_ASSERT_EQUAL(true, pmt::is_tuple(t));
+ CPPUNIT_ASSERT_EQUAL(len, pmt::length(t));
for (size_t i = 0; i < len; i++)
- CPPUNIT_ASSERT_EQUAL(s[i], pmt_tuple_ref(t, i));
+ CPPUNIT_ASSERT_EQUAL(s[i], pmt::tuple_ref(t, i));
}
void
qa_pmt_prims::test_tuples()
{
- pmt_t v = pmt_make_vector(10, PMT_NIL);
- std::vector<pmt_t> s(10);
+ pmt::pmt_t v = pmt::make_vector(10, pmt::PMT_NIL);
+ std::vector<pmt::pmt_t> s(10);
for (size_t i = 0; i < 10; i++){
std::ostringstream os;
os << "s" << i;
- s[i] = mp(os.str());
- pmt_vector_set(v, i, s[i]);
+ s[i] = pmt::mp(os.str());
+ pmt::vector_set(v, i, s[i]);
}
- pmt_t t;
+ pmt::pmt_t t;
- t = pmt_make_tuple();
+ t = pmt::make_tuple();
check_tuple(0, s, t);
- t = pmt_make_tuple(s[0]);
+ t = pmt::make_tuple(s[0]);
check_tuple(1, s, t);
- CPPUNIT_ASSERT(pmt_is_vector(v));
- CPPUNIT_ASSERT(!pmt_is_tuple(v));
- CPPUNIT_ASSERT(pmt_is_tuple(t));
- CPPUNIT_ASSERT(!pmt_is_vector(t));
+ CPPUNIT_ASSERT(pmt::is_vector(v));
+ CPPUNIT_ASSERT(!pmt::is_tuple(v));
+ CPPUNIT_ASSERT(pmt::is_tuple(t));
+ CPPUNIT_ASSERT(!pmt::is_vector(t));
- t = pmt_make_tuple(s[0], s[1]);
+ t = pmt::make_tuple(s[0], s[1]);
check_tuple(2, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2]);
+ t = pmt::make_tuple(s[0], s[1], s[2]);
check_tuple(3, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3]);
check_tuple(4, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4]);
check_tuple(5, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5]);
check_tuple(6, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6]);
check_tuple(7, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7]);
check_tuple(8, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]);
check_tuple(9, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]);
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]);
check_tuple(10, s, t);
- t = pmt_make_tuple(s[0], s[1], s[2]);
- CPPUNIT_ASSERT_THROW(pmt_tuple_ref(t, 3), pmt_out_of_range);
- CPPUNIT_ASSERT_THROW(pmt_vector_ref(t, 0), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_tuple_ref(v, 0), pmt_wrong_type);
+ t = pmt::make_tuple(s[0], s[1], s[2]);
+ CPPUNIT_ASSERT_THROW(pmt::tuple_ref(t, 3), pmt::out_of_range);
+ CPPUNIT_ASSERT_THROW(pmt::vector_ref(t, 0), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::tuple_ref(v, 0), pmt::wrong_type);
- t = pmt_make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]);
- pmt_t t2 = pmt_to_tuple(v);
- CPPUNIT_ASSERT_EQUAL(size_t(10), pmt_length(v));
- CPPUNIT_ASSERT(pmt_equal(t, t2));
+ t = pmt::make_tuple(s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]);
+ pmt::pmt_t t2 = pmt::to_tuple(v);
+ CPPUNIT_ASSERT_EQUAL(size_t(10), pmt::length(v));
+ CPPUNIT_ASSERT(pmt::equal(t, t2));
//std::cout << v << std::endl;
//std::cout << t2 << std::endl;
- t = pmt_make_tuple(s[0], s[1], s[2]);
- pmt_t list0 = pmt_list3(s[0], s[1], s[2]);
- CPPUNIT_ASSERT_EQUAL(size_t(3), pmt_length(list0));
- t2 = pmt_to_tuple(list0);
- CPPUNIT_ASSERT_EQUAL(size_t(3), pmt_length(t2));
- CPPUNIT_ASSERT(pmt_equal(t, t2));
+ t = pmt::make_tuple(s[0], s[1], s[2]);
+ pmt::pmt_t list0 = pmt::list3(s[0], s[1], s[2]);
+ CPPUNIT_ASSERT_EQUAL(size_t(3), pmt::length(list0));
+ t2 = pmt::to_tuple(list0);
+ CPPUNIT_ASSERT_EQUAL(size_t(3), pmt::length(t2));
+ CPPUNIT_ASSERT(pmt::equal(t, t2));
}
void
qa_pmt_prims::test_equivalence()
{
- pmt_t s0 = mp("s0");
- pmt_t s1 = mp("s1");
- pmt_t s2 = mp("s2");
- pmt_t list0 = pmt_cons(s0, pmt_cons(s1, pmt_cons(s2, PMT_NIL)));
- pmt_t list1 = pmt_cons(s0, pmt_cons(s1, pmt_cons(s2, PMT_NIL)));
- pmt_t i0 = pmt_from_long(42);
- pmt_t i1 = pmt_from_long(42);
- pmt_t r0 = pmt_from_double(42);
- pmt_t r1 = pmt_from_double(42);
- pmt_t r2 = pmt_from_double(43);
-
- CPPUNIT_ASSERT(pmt_eq(s0, s0));
- CPPUNIT_ASSERT(!pmt_eq(s0, s1));
- CPPUNIT_ASSERT(pmt_eqv(s0, s0));
- CPPUNIT_ASSERT(!pmt_eqv(s0, s1));
-
- CPPUNIT_ASSERT(pmt_eqv(i0, i1));
- CPPUNIT_ASSERT(pmt_eqv(r0, r1));
- CPPUNIT_ASSERT(!pmt_eqv(r0, r2));
- CPPUNIT_ASSERT(!pmt_eqv(i0, r0));
-
- CPPUNIT_ASSERT(!pmt_eq(list0, list1));
- CPPUNIT_ASSERT(!pmt_eqv(list0, list1));
- CPPUNIT_ASSERT(pmt_equal(list0, list1));
-
- pmt_t v0 = pmt_make_vector(3, s0);
- pmt_t v1 = pmt_make_vector(3, s0);
- pmt_t v2 = pmt_make_vector(4, s0);
- CPPUNIT_ASSERT(!pmt_eqv(v0, v1));
- CPPUNIT_ASSERT(pmt_equal(v0, v1));
- CPPUNIT_ASSERT(!pmt_equal(v0, v2));
-
- pmt_vector_set(v0, 0, list0);
- pmt_vector_set(v0, 1, list0);
- pmt_vector_set(v1, 0, list1);
- pmt_vector_set(v1, 1, list1);
- CPPUNIT_ASSERT(pmt_equal(v0, v1));
+ pmt::pmt_t s0 = pmt::mp("s0");
+ pmt::pmt_t s1 = pmt::mp("s1");
+ pmt::pmt_t s2 = pmt::mp("s2");
+ pmt::pmt_t list0 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL)));
+ pmt::pmt_t list1 = pmt::cons(s0, pmt::cons(s1, pmt::cons(s2, pmt::PMT_NIL)));
+ pmt::pmt_t i0 = pmt::from_long(42);
+ pmt::pmt_t i1 = pmt::from_long(42);
+ pmt::pmt_t r0 = pmt::from_double(42);
+ pmt::pmt_t r1 = pmt::from_double(42);
+ pmt::pmt_t r2 = pmt::from_double(43);
+
+ CPPUNIT_ASSERT(pmt::eq(s0, s0));
+ CPPUNIT_ASSERT(!pmt::eq(s0, s1));
+ CPPUNIT_ASSERT(pmt::eqv(s0, s0));
+ CPPUNIT_ASSERT(!pmt::eqv(s0, s1));
+
+ CPPUNIT_ASSERT(pmt::eqv(i0, i1));
+ CPPUNIT_ASSERT(pmt::eqv(r0, r1));
+ CPPUNIT_ASSERT(!pmt::eqv(r0, r2));
+ CPPUNIT_ASSERT(!pmt::eqv(i0, r0));
+
+ CPPUNIT_ASSERT(!pmt::eq(list0, list1));
+ CPPUNIT_ASSERT(!pmt::eqv(list0, list1));
+ CPPUNIT_ASSERT(pmt::equal(list0, list1));
+
+ pmt::pmt_t v0 = pmt::make_vector(3, s0);
+ pmt::pmt_t v1 = pmt::make_vector(3, s0);
+ pmt::pmt_t v2 = pmt::make_vector(4, s0);
+ CPPUNIT_ASSERT(!pmt::eqv(v0, v1));
+ CPPUNIT_ASSERT(pmt::equal(v0, v1));
+ CPPUNIT_ASSERT(!pmt::equal(v0, v2));
+
+ pmt::vector_set(v0, 0, list0);
+ pmt::vector_set(v0, 1, list0);
+ pmt::vector_set(v1, 0, list1);
+ pmt::vector_set(v1, 1, list1);
+ CPPUNIT_ASSERT(pmt::equal(v0, v1));
}
void
qa_pmt_prims::test_misc()
{
- pmt_t k0 = mp("k0");
- pmt_t k1 = mp("k1");
- pmt_t k2 = mp("k2");
- pmt_t k3 = mp("k3");
- pmt_t v0 = mp("v0");
- pmt_t v1 = mp("v1");
- pmt_t v2 = mp("v2");
- pmt_t p0 = pmt_cons(k0, v0);
- pmt_t p1 = pmt_cons(k1, v1);
- pmt_t p2 = pmt_cons(k2, v2);
-
- pmt_t alist = pmt_cons(p0, pmt_cons(p1, pmt_cons(p2, PMT_NIL)));
- CPPUNIT_ASSERT(pmt_eq(p1, pmt_assv(k1, alist)));
- CPPUNIT_ASSERT(pmt_eq(PMT_F, pmt_assv(k3, alist)));
-
- pmt_t keys = pmt_cons(k0, pmt_cons(k1, pmt_cons(k2, PMT_NIL)));
- pmt_t vals = pmt_cons(v0, pmt_cons(v1, pmt_cons(v2, PMT_NIL)));
- CPPUNIT_ASSERT(pmt_equal(keys, pmt_map(pmt_car, alist)));
- CPPUNIT_ASSERT(pmt_equal(vals, pmt_map(pmt_cdr, alist)));
+ pmt::pmt_t k0 = pmt::mp("k0");
+ pmt::pmt_t k1 = pmt::mp("k1");
+ pmt::pmt_t k2 = pmt::mp("k2");
+ pmt::pmt_t k3 = pmt::mp("k3");
+ pmt::pmt_t v0 = pmt::mp("v0");
+ pmt::pmt_t v1 = pmt::mp("v1");
+ pmt::pmt_t v2 = pmt::mp("v2");
+ pmt::pmt_t p0 = pmt::cons(k0, v0);
+ pmt::pmt_t p1 = pmt::cons(k1, v1);
+ pmt::pmt_t p2 = pmt::cons(k2, v2);
+
+ pmt::pmt_t alist = pmt::cons(p0, pmt::cons(p1, pmt::cons(p2, pmt::PMT_NIL)));
+ CPPUNIT_ASSERT(pmt::eq(p1, pmt::assv(k1, alist)));
+ CPPUNIT_ASSERT(pmt::eq(pmt::PMT_F, pmt::assv(k3, alist)));
+
+ pmt::pmt_t keys = pmt::cons(k0, pmt::cons(k1, pmt::cons(k2, pmt::PMT_NIL)));
+ pmt::pmt_t vals = pmt::cons(v0, pmt::cons(v1, pmt::cons(v2, pmt::PMT_NIL)));
+ CPPUNIT_ASSERT(pmt::equal(keys, pmt::map(pmt::car, alist)));
+ CPPUNIT_ASSERT(pmt::equal(vals, pmt::map(pmt::cdr, alist)));
}
void
qa_pmt_prims::test_dict()
{
- pmt_t dict = pmt_make_dict();
- CPPUNIT_ASSERT(pmt_is_dict(dict));
-
- pmt_t k0 = mp("k0");
- pmt_t k1 = mp("k1");
- pmt_t k2 = mp("k2");
- pmt_t k3 = mp("k3");
- pmt_t v0 = mp("v0");
- pmt_t v1 = mp("v1");
- pmt_t v2 = mp("v2");
- pmt_t v3 = mp("v3");
- pmt_t not_found = pmt_cons(PMT_NIL, PMT_NIL);
-
- CPPUNIT_ASSERT(!pmt_dict_has_key(dict, k0));
- dict = pmt_dict_add(dict, k0, v0);
- CPPUNIT_ASSERT(pmt_dict_has_key(dict, k0));
- CPPUNIT_ASSERT(pmt_eqv(pmt_dict_ref(dict, k0, not_found), v0));
- CPPUNIT_ASSERT(pmt_eqv(pmt_dict_ref(dict, k1, not_found), not_found));
- dict = pmt_dict_add(dict, k1, v1);
- dict = pmt_dict_add(dict, k2, v2);
- CPPUNIT_ASSERT(pmt_eqv(pmt_dict_ref(dict, k1, not_found), v1));
- dict = pmt_dict_add(dict, k1, v3);
- CPPUNIT_ASSERT(pmt_eqv(pmt_dict_ref(dict, k1, not_found), v3));
-
- pmt_t keys = pmt_list3(k1, k2, k0);
- pmt_t vals = pmt_list3(v3, v2, v0);
- //std::cout << "pmt_dict_keys: " << pmt_dict_keys(dict) << std::endl;
- //std::cout << "pmt_dict_values: " << pmt_dict_values(dict) << std::endl;
- CPPUNIT_ASSERT(pmt_equal(keys, pmt_dict_keys(dict)));
- CPPUNIT_ASSERT(pmt_equal(vals, pmt_dict_values(dict)));
+ pmt::pmt_t dict = pmt::make_dict();
+ CPPUNIT_ASSERT(pmt::is_dict(dict));
+
+ pmt::pmt_t k0 = pmt::mp("k0");
+ pmt::pmt_t k1 = pmt::mp("k1");
+ pmt::pmt_t k2 = pmt::mp("k2");
+ pmt::pmt_t k3 = pmt::mp("k3");
+ pmt::pmt_t v0 = pmt::mp("v0");
+ pmt::pmt_t v1 = pmt::mp("v1");
+ pmt::pmt_t v2 = pmt::mp("v2");
+ pmt::pmt_t v3 = pmt::mp("v3");
+ pmt::pmt_t not_found = pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL);
+
+ CPPUNIT_ASSERT(!pmt::dict_has_key(dict, k0));
+ dict = pmt::dict_add(dict, k0, v0);
+ CPPUNIT_ASSERT(pmt::dict_has_key(dict, k0));
+ CPPUNIT_ASSERT(pmt::eqv(pmt::dict_ref(dict, k0, not_found), v0));
+ CPPUNIT_ASSERT(pmt::eqv(pmt::dict_ref(dict, k1, not_found), not_found));
+ dict = pmt::dict_add(dict, k1, v1);
+ dict = pmt::dict_add(dict, k2, v2);
+ CPPUNIT_ASSERT(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v1));
+ dict = pmt::dict_add(dict, k1, v3);
+ CPPUNIT_ASSERT(pmt::eqv(pmt::dict_ref(dict, k1, not_found), v3));
+
+ pmt::pmt_t keys = pmt::list3(k1, k2, k0);
+ pmt::pmt_t vals = pmt::list3(v3, v2, v0);
+ //std::cout << "pmt::dict_keys: " << pmt::dict_keys(dict) << std::endl;
+ //std::cout << "pmt::dict_values: " << pmt::dict_values(dict) << std::endl;
+ CPPUNIT_ASSERT(pmt::equal(keys, pmt::dict_keys(dict)));
+ CPPUNIT_ASSERT(pmt::equal(vals, pmt::dict_values(dict)));
}
void
qa_pmt_prims::test_io()
{
- pmt_t k0 = mp("k0");
- pmt_t k1 = mp("k1");
- pmt_t k2 = mp("k2");
- pmt_t k3 = mp("k3");
+ pmt::pmt_t k0 = pmt::mp("k0");
+ pmt::pmt_t k1 = pmt::mp("k1");
+ pmt::pmt_t k2 = pmt::mp("k2");
+ pmt::pmt_t k3 = pmt::mp("k3");
- CPPUNIT_ASSERT_EQUAL(std::string("k0"), pmt_write_string(k0));
+ CPPUNIT_ASSERT_EQUAL(std::string("k0"), pmt::write_string(k0));
}
void
qa_pmt_prims::test_lists()
{
- pmt_t s0 = mp("s0");
- pmt_t s1 = mp("s1");
- pmt_t s2 = mp("s2");
- pmt_t s3 = mp("s3");
-
- pmt_t l1 = pmt_list4(s0, s1, s2, s3);
- pmt_t l2 = pmt_list3(s0, s1, s2);
- pmt_t l3 = pmt_list_add(l2, s3);
- CPPUNIT_ASSERT(pmt_equal(l1, l3));
+ pmt::pmt_t s0 = pmt::mp("s0");
+ pmt::pmt_t s1 = pmt::mp("s1");
+ pmt::pmt_t s2 = pmt::mp("s2");
+ pmt::pmt_t s3 = pmt::mp("s3");
+
+ pmt::pmt_t l1 = pmt::list4(s0, s1, s2, s3);
+ pmt::pmt_t l2 = pmt::list3(s0, s1, s2);
+ pmt::pmt_t l3 = pmt::list_add(l2, s3);
+ CPPUNIT_ASSERT(pmt::equal(l1, l3));
}
// ------------------------------------------------------------------------
@@ -464,18 +462,18 @@ qa_pmt_prims::test_any()
a1 = 42;
a2 = foo(3.250, 21);
- pmt_t p0 = pmt_make_any(a0);
- pmt_t p1 = pmt_make_any(a1);
- pmt_t p2 = pmt_make_any(a2);
+ pmt::pmt_t p0 = pmt::make_any(a0);
+ pmt::pmt_t p1 = pmt::make_any(a1);
+ pmt::pmt_t p2 = pmt::make_any(a2);
CPPUNIT_ASSERT_EQUAL(std::string("Hello!"),
- boost::any_cast<std::string>(pmt_any_ref(p0)));
+ boost::any_cast<std::string>(pmt::any_ref(p0)));
CPPUNIT_ASSERT_EQUAL(42,
- boost::any_cast<int>(pmt_any_ref(p1)));
+ boost::any_cast<int>(pmt::any_ref(p1)));
CPPUNIT_ASSERT_EQUAL(foo(3.250, 21),
- boost::any_cast<foo>(pmt_any_ref(p2)));
+ boost::any_cast<foo>(pmt::any_ref(p2)));
}
// ------------------------------------------------------------------------
@@ -484,7 +482,7 @@ class qa_pmt_msg_accepter_nop : public gruel::msg_accepter {
public:
qa_pmt_msg_accepter_nop(){};
~qa_pmt_msg_accepter_nop();
- void post(pmt_t,pmt_t){};
+ void post(pmt::pmt_t,pmt::pmt_t){};
};
qa_pmt_msg_accepter_nop::~qa_pmt_msg_accepter_nop(){}
@@ -492,22 +490,22 @@ qa_pmt_msg_accepter_nop::~qa_pmt_msg_accepter_nop(){}
void
qa_pmt_prims::test_msg_accepter()
{
- pmt_t sym = mp("my-symbol");
+ pmt::pmt_t sym = pmt::mp("my-symbol");
boost::any a0;
a0 = std::string("Hello!");
- pmt_t p0 = pmt_make_any(a0);
+ pmt::pmt_t p0 = pmt::make_any(a0);
gruel::msg_accepter_sptr ma0 = gruel::msg_accepter_sptr(new qa_pmt_msg_accepter_nop());
- pmt_t p1 = pmt_make_msg_accepter(ma0);
+ pmt::pmt_t p1 = pmt::make_msg_accepter(ma0);
- CPPUNIT_ASSERT_EQUAL(ma0.get(), pmt_msg_accepter_ref(p1).get());
+ CPPUNIT_ASSERT_EQUAL(ma0.get(), pmt::msg_accepter_ref(p1).get());
- CPPUNIT_ASSERT_THROW(pmt_msg_accepter_ref(sym), pmt_wrong_type);
- CPPUNIT_ASSERT_THROW(pmt_msg_accepter_ref(p0), pmt_wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::msg_accepter_ref(sym), pmt::wrong_type);
+ CPPUNIT_ASSERT_THROW(pmt::msg_accepter_ref(p0), pmt::wrong_type);
// just confirm interfaces on send are OK
- pmt_t port(pmt_intern("port"));
+ pmt::pmt_t port(pmt::intern("port"));
gruel::send(ma0.get(), port, sym);
gruel::send(ma0, port, sym);
gruel::send(p1, port, sym);
@@ -520,43 +518,43 @@ void
qa_pmt_prims::test_serialize()
{
std::stringbuf sb; // fake channel
- pmt_t a = mp("a");
- pmt_t b = mp("b");
- pmt_t c = mp("c");
+ pmt::pmt_t a = pmt::mp("a");
+ pmt::pmt_t b = pmt::mp("b");
+ pmt::pmt_t c = pmt::mp("c");
sb.str(""); // reset channel to empty
// write stuff to channel
- pmt_serialize(PMT_NIL, sb);
- pmt_serialize(mp("foobarvia"), sb);
- pmt_serialize(pmt_from_long(123456789), sb);
- pmt_serialize(pmt_from_long(-123456789), sb);
- pmt_serialize(pmt_cons(PMT_NIL, PMT_NIL), sb);
- pmt_serialize(pmt_cons(a, b), sb);
- pmt_serialize(pmt_list1(a), sb);
- pmt_serialize(pmt_list2(a, b), sb);
- pmt_serialize(pmt_list3(a, b, c), sb);
- pmt_serialize(pmt_list3(a, pmt_list3(c, b, a), c), sb);
- pmt_serialize(PMT_T, sb);
- pmt_serialize(PMT_F, sb);
+ pmt::serialize(pmt::PMT_NIL, sb);
+ pmt::serialize(pmt::mp("foobarvia"), sb);
+ pmt::serialize(pmt::from_long(123456789), sb);
+ pmt::serialize(pmt::from_long(-123456789), sb);
+ pmt::serialize(pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL), sb);
+ pmt::serialize(pmt::cons(a, b), sb);
+ pmt::serialize(pmt::list1(a), sb);
+ pmt::serialize(pmt::list2(a, b), sb);
+ pmt::serialize(pmt::list3(a, b, c), sb);
+ pmt::serialize(pmt::list3(a, pmt::list3(c, b, a), c), sb);
+ pmt::serialize(pmt::PMT_T, sb);
+ pmt::serialize(pmt::PMT_F, sb);
// read it back
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), PMT_NIL));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), mp("foobarvia")));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_from_long(123456789)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_from_long(-123456789)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_cons(PMT_NIL, PMT_NIL)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_cons(a, b)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_list1(a)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_list2(a, b)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_list3(a, b, c)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), pmt_list3(a, pmt_list3(c, b, a), c)));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), PMT_T));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), PMT_F));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::PMT_NIL));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::mp("foobarvia")));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::from_long(123456789)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::from_long(-123456789)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::cons(pmt::PMT_NIL, pmt::PMT_NIL)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::cons(a, b)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::list1(a)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::list2(a, b)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::list3(a, b, c)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::list3(a, pmt::list3(c, b, a), c)));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::PMT_T));
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::PMT_F));
- CPPUNIT_ASSERT(pmt_equal(pmt_deserialize(sb), PMT_EOF)); // last item
+ CPPUNIT_ASSERT(pmt::equal(pmt::deserialize(sb), pmt::PMT_EOF)); // last item
// FIXME add tests for real, complex, vector, uniform-vector, dict
@@ -567,37 +565,37 @@ qa_pmt_prims::test_serialize()
void
qa_pmt_prims::test_sets()
{
- pmt_t s1 = mp("s1");
- pmt_t s2 = mp("s2");
- pmt_t s3 = mp("s3");
-
- pmt_t l1 = pmt_list1(s1);
- pmt_t l2 = pmt_list2(s2,s3);
- pmt_t l3 = pmt_list3(s1,s2,s3);
-
- CPPUNIT_ASSERT(pmt_is_pair(pmt_memq(s1,l1)));
- CPPUNIT_ASSERT(pmt_is_false(pmt_memq(s3,l1)));
-
- CPPUNIT_ASSERT(pmt_subsetp(l1,l3));
- CPPUNIT_ASSERT(pmt_subsetp(l2,l3));
- CPPUNIT_ASSERT(!pmt_subsetp(l1,l2));
- CPPUNIT_ASSERT(!pmt_subsetp(l2,l1));
- CPPUNIT_ASSERT(!pmt_subsetp(l3,l2));
+ pmt::pmt_t s1 = pmt::mp("s1");
+ pmt::pmt_t s2 = pmt::mp("s2");
+ pmt::pmt_t s3 = pmt::mp("s3");
+
+ pmt::pmt_t l1 = pmt::list1(s1);
+ pmt::pmt_t l2 = pmt::list2(s2,s3);
+ pmt::pmt_t l3 = pmt::list3(s1,s2,s3);
+
+ CPPUNIT_ASSERT(pmt::is_pair(pmt::memq(s1,l1)));
+ CPPUNIT_ASSERT(pmt::is_false(pmt::memq(s3,l1)));
+
+ CPPUNIT_ASSERT(pmt::subsetp(l1,l3));
+ CPPUNIT_ASSERT(pmt::subsetp(l2,l3));
+ CPPUNIT_ASSERT(!pmt::subsetp(l1,l2));
+ CPPUNIT_ASSERT(!pmt::subsetp(l2,l1));
+ CPPUNIT_ASSERT(!pmt::subsetp(l3,l2));
}
void
qa_pmt_prims::test_sugar()
{
- CPPUNIT_ASSERT(pmt_is_symbol(mp("my-symbol")));
- CPPUNIT_ASSERT_EQUAL((long) 10, pmt_to_long(mp(10)));
- CPPUNIT_ASSERT_EQUAL((double) 1e6, pmt_to_double(mp(1e6)));
+ CPPUNIT_ASSERT(pmt::is_symbol(pmt::mp("my-symbol")));
+ CPPUNIT_ASSERT_EQUAL((long) 10, pmt::to_long(pmt::mp(10)));
+ CPPUNIT_ASSERT_EQUAL((double) 1e6, pmt::to_double(pmt::mp(1e6)));
CPPUNIT_ASSERT_EQUAL(std::complex<double>(2, 3),
- pmt_to_complex(mp(std::complex<double>(2, 3))));
+ pmt::to_complex(pmt::mp(std::complex<double>(2, 3))));
int buf[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- pmt_t blob = mp(buf, sizeof(buf));
- const void *data = pmt_blob_data(blob);
- size_t nbytes = pmt_blob_length(blob);
+ pmt::pmt_t blob = pmt::mp(buf, sizeof(buf));
+ const void *data = pmt::blob_data(blob);
+ size_t nbytes = pmt::blob_length(blob);
CPPUNIT_ASSERT_EQUAL(sizeof(buf), nbytes);
CPPUNIT_ASSERT(memcmp(buf, data, nbytes) == 0);
}
diff --git a/gruel/src/lib/pmt/unv_qa_template.cc.t b/gruel/src/lib/pmt/unv_qa_template.cc.t
index 1e2c8e8eb5..a04d532b4e 100644
--- a/gruel/src/lib/pmt/unv_qa_template.cc.t
+++ b/gruel/src/lib/pmt/unv_qa_template.cc.t
@@ -2,31 +2,31 @@ void
qa_pmt_unv::test_@TAG@vector()
{
static const size_t N = 3;
- pmt_t v1 = pmt_make_@TAG@vector(N, 0);
- CPPUNIT_ASSERT_EQUAL(N, pmt_length(v1));
+ pmt_t v1 = pmt::make_@TAG@vector(N, 0);
+ CPPUNIT_ASSERT_EQUAL(N, pmt::length(v1));
@TYPE@ s0 = @TYPE@(10);
@TYPE@ s1 = @TYPE@(20);
@TYPE@ s2 = @TYPE@(30);
- pmt_@TAG@vector_set(v1, 0, s0);
- pmt_@TAG@vector_set(v1, 1, s1);
- pmt_@TAG@vector_set(v1, 2, s2);
+ pmt::@TAG@vector_set(v1, 0, s0);
+ pmt::@TAG@vector_set(v1, 1, s1);
+ pmt::@TAG@vector_set(v1, 2, s2);
- CPPUNIT_ASSERT_EQUAL(s0, pmt_@TAG@vector_ref(v1, 0));
- CPPUNIT_ASSERT_EQUAL(s1, pmt_@TAG@vector_ref(v1, 1));
- CPPUNIT_ASSERT_EQUAL(s2, pmt_@TAG@vector_ref(v1, 2));
+ CPPUNIT_ASSERT_EQUAL(s0, pmt::@TAG@vector_ref(v1, 0));
+ CPPUNIT_ASSERT_EQUAL(s1, pmt::@TAG@vector_ref(v1, 1));
+ CPPUNIT_ASSERT_EQUAL(s2, pmt::@TAG@vector_ref(v1, 2));
- CPPUNIT_ASSERT_THROW(pmt_@TAG@vector_ref(v1, N), pmt_out_of_range);
- CPPUNIT_ASSERT_THROW(pmt_@TAG@vector_set(v1, N, @TYPE@(0)), pmt_out_of_range);
+ CPPUNIT_ASSERT_THROW(pmt::@TAG@vector_ref(v1, N), pmt::out_of_range);
+ CPPUNIT_ASSERT_THROW(pmt::@TAG@vector_set(v1, N, @TYPE@(0)), pmt::out_of_range);
size_t len;
- const @TYPE@ *rd = pmt_@TAG@vector_elements(v1, len);
+ const @TYPE@ *rd = pmt::@TAG@vector_elements(v1, len);
CPPUNIT_ASSERT_EQUAL(len, N);
CPPUNIT_ASSERT_EQUAL(s0, rd[0]);
CPPUNIT_ASSERT_EQUAL(s1, rd[1]);
CPPUNIT_ASSERT_EQUAL(s2, rd[2]);
- @TYPE@ *wr = pmt_@TAG@vector_writable_elements(v1, len);
+ @TYPE@ *wr = pmt::@TAG@vector_writable_elements(v1, len);
CPPUNIT_ASSERT_EQUAL(len, N);
wr[0] = @TYPE@(0);
CPPUNIT_ASSERT_EQUAL(@TYPE@(0), wr[0]);
diff --git a/gruel/src/lib/pmt/unv_template.cc.t b/gruel/src/lib/pmt/unv_template.cc.t
index 1ed505e29a..8678894973 100644
--- a/gruel/src/lib/pmt/unv_template.cc.t
+++ b/gruel/src/lib/pmt/unv_template.cc.t
@@ -29,7 +29,7 @@ pmt_@TAG@vector::pmt_@TAG@vector(size_t k, const @TYPE@ *data)
pmt_@TAG@vector::ref(size_t k) const
{
if (k >= length())
- throw pmt_out_of_range("pmt_@TAG@vector_ref", pmt_from_long(k));
+ throw out_of_range("pmt_@TAG@vector_ref", from_long(k));
return d_v[k];
}
@@ -37,7 +37,7 @@ void
pmt_@TAG@vector::set(size_t k, @TYPE@ x)
{
if (k >= length())
- throw pmt_out_of_range("pmt_@TAG@vector_set", pmt_from_long(k));
+ throw out_of_range("pmt_@TAG@vector_set", from_long(k));
d_v[k] = x;
}
@@ -70,59 +70,59 @@ pmt_@TAG@vector::uniform_writable_elements(size_t &len)
}
bool
-pmt_is_@TAG@vector(pmt_t obj)
+is_@TAG@vector(pmt_t obj)
{
return obj->is_@TAG@vector();
}
pmt_t
-pmt_make_@TAG@vector(size_t k, @TYPE@ fill)
+make_@TAG@vector(size_t k, @TYPE@ fill)
{
return pmt_t(new pmt_@TAG@vector(k, fill));
}
pmt_t
-pmt_init_@TAG@vector(size_t k, const @TYPE@ *data)
+init_@TAG@vector(size_t k, const @TYPE@ *data)
{
return pmt_t(new pmt_@TAG@vector(k, data));
}
pmt_t
-pmt_init_@TAG@vector(size_t k, const std::vector< @TYPE@ > &data)
+init_@TAG@vector(size_t k, const std::vector< @TYPE@ > &data)
{
return pmt_t(new pmt_@TAG@vector(k, &data[0]));
}
@TYPE@
-pmt_@TAG@vector_ref(pmt_t vector, size_t k)
+@TAG@vector_ref(pmt_t vector, size_t k)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_ref", vector);
+ throw wrong_type("pmt_@TAG@vector_ref", vector);
return _@TAG@vector(vector)->ref(k);
}
void
-pmt_@TAG@vector_set(pmt_t vector, size_t k, @TYPE@ obj)
+@TAG@vector_set(pmt_t vector, size_t k, @TYPE@ obj)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_set", vector);
+ throw wrong_type("pmt_@TAG@vector_set", vector);
_@TAG@vector(vector)->set(k, obj);
}
const @TYPE@ *
-pmt_@TAG@vector_elements(pmt_t vector, size_t &len)
+@TAG@vector_elements(pmt_t vector, size_t &len)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_elements", vector);
+ throw wrong_type("pmt_@TAG@vector_elements", vector);
return _@TAG@vector(vector)->elements(len);
}
const std::vector< @TYPE@ >
-pmt_@TAG@vector_elements(pmt_t vector)
+@TAG@vector_elements(pmt_t vector)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_elements", vector);
+ throw wrong_type("pmt_@TAG@vector_elements", vector);
size_t len;
const @TYPE@ *array = _@TAG@vector(vector)->elements(len);
const std::vector< @TYPE@ > vec(array, array+len);
@@ -131,10 +131,10 @@ pmt_@TAG@vector_elements(pmt_t vector)
@TYPE@ *
-pmt_@TAG@vector_writable_elements(pmt_t vector, size_t &len)
+@TAG@vector_writable_elements(pmt_t vector, size_t &len)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_writable_elements", vector);
+ throw wrong_type("pmt_@TAG@vector_writable_elements", vector);
return _@TAG@vector(vector)->writable_elements(len);
}
diff --git a/gruel/src/python/qa_pmt.py b/gruel/src/python/qa_pmt.py
index 59a5725fc4..c8d3df93b2 100755
--- a/gruel/src/python/qa_pmt.py
+++ b/gruel/src/python/qa_pmt.py
@@ -25,78 +25,78 @@ import pmt_swig as pmt
class test_gruel_pmt(unittest.TestCase):
- def test01 (self):
- a = pmt.pmt_intern("a")
- b = pmt.pmt_from_double(123765)
- d1 = pmt.pmt_make_dict()
- d2 = pmt.pmt_dict_add(d1, a, b)
- pmt.pmt_print(d2)
+ def test01(self):
+ a = pmt.intern("a")
+ b = pmt.from_double(123765)
+ d1 = pmt.make_dict()
+ d2 = pmt.dict_add(d1, a, b)
+ print d2
- def test02 (self):
+ def test02(self):
const = 123765
- x_pmt = pmt.pmt_from_double(const)
- x_int = pmt.pmt_to_double(x_pmt)
+ x_pmt = pmt.from_double(const)
+ x_int = pmt.to_double(x_pmt)
self.assertEqual(x_int, const)
def test03(self):
- v = pmt.pmt_init_f32vector(3, [11, -22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_f32vector(3, [11, -22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test04(self):
- v = pmt.pmt_init_f64vector(3, [11, -22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_f64vector(3, [11, -22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test05(self):
- v = pmt.pmt_init_u8vector(3, [11, 22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_u8vector(3, [11, 22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test06(self):
- v = pmt.pmt_init_s8vector(3, [11, -22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_s8vector(3, [11, -22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test07(self):
- v = pmt.pmt_init_u16vector(3, [11, 22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_u16vector(3, [11, 22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test08(self):
- v = pmt.pmt_init_s16vector(3, [11, -22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_s16vector(3, [11, -22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test09(self):
- v = pmt.pmt_init_u32vector(3, [11, 22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_u32vector(3, [11, 22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test10(self):
- v = pmt.pmt_init_s32vector(3, [11, -22, 33])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_s32vector(3, [11, -22, 33])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test11(self):
- v = pmt.pmt_init_c32vector(3, [11 + -101j, -22 + 202j, 33 + -303j])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_c32vector(3, [11 + -101j, -22 + 202j, 33 + -303j])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
def test12(self):
- v = pmt.pmt_init_c64vector(3, [11 + -101j, -22 + 202j, 33 + -303j])
- s = pmt.pmt_serialize_str(v)
- d = pmt.pmt_deserialize_str(s)
- self.assertTrue(pmt.pmt_equal(v, d))
+ v = pmt.init_c64vector(3, [11 + -101j, -22 + 202j, 33 + -303j])
+ s = pmt.serialize_str(v)
+ d = pmt.deserialize_str(s)
+ self.assertTrue(pmt.equal(v, d))
if __name__ == '__main__':
unittest.main()
diff --git a/gruel/src/swig/CMakeLists.txt b/gruel/src/swig/CMakeLists.txt
index a5e3f93994..b1d4090af0 100644
--- a/gruel/src/swig/CMakeLists.txt
+++ b/gruel/src/swig/CMakeLists.txt
@@ -34,7 +34,7 @@ GR_SWIG_MAKE(pmt_swig pmt_swig.i)
GR_SWIG_INSTALL(
TARGETS pmt_swig
- DESTINATION ${GR_PYTHON_DIR}/gruel/pmt
+ DESTINATION ${GR_PYTHON_DIR}/pmt
COMPONENT "gruel_python"
)
diff --git a/gruel/src/swig/pmt_swig.i b/gruel/src/swig/pmt_swig.i
index 84f48b099a..ba16511114 100644
--- a/gruel/src/swig/pmt_swig.i
+++ b/gruel/src/swig/pmt_swig.i
@@ -73,720 +73,223 @@ namespace pmt{
namespace pmt{
-typedef boost::intrusive_ptr<pmt_base> pmt_t;
-
-/*
- * ------------------------------------------------------------------------
- * Booleans. Two constants, #t and #f.
- *
- * In predicates, anything that is not #f is considered true.
- * I.e., there is a single false value, #f.
- * ------------------------------------------------------------------------
- */
-extern const pmt_t PMT_T;
-extern const pmt_t PMT_F;
-
-//! Return true if obj is \#t or \#f, else return false.
-bool pmt_is_bool(pmt_t obj);
-
-//! Return false if obj is \#f, else return true.
-bool pmt_is_true(pmt_t obj);
-
-//! Return true if obj is \#f, else return true.
-bool pmt_is_false(pmt_t obj);
-
-//! Return \#f is val is false, else return \#t.
-pmt_t pmt_from_bool(bool val);
-
-//! Return true if val is PMT_T, return false when val is PMT_F,
-// else raise wrong_type exception.
-bool pmt_to_bool(pmt_t val);
-
-/*
- * ------------------------------------------------------------------------
- * Symbols
- * ------------------------------------------------------------------------
- */
-
-//! Return true if obj is a symbol, else false.
-bool pmt_is_symbol(const pmt_t& obj);
-
-//! Return the symbol whose name is \p s.
-pmt_t pmt_string_to_symbol(const std::string &s);
-
-//! Alias for pmt_string_to_symbol
-pmt_t pmt_intern(const std::string &s);
-
-
-/*!
- * If \p is a symbol, return the name of the symbol as a string.
- * Otherwise, raise the wrong_type exception.
- */
-const std::string pmt_symbol_to_string(const pmt_t& sym);
-
-/*
- * ------------------------------------------------------------------------
- * Numbers: we support integer, real and complex
- * ------------------------------------------------------------------------
- */
-
-//! Return true if obj is any kind of number, else false.
-bool pmt_is_number(pmt_t obj);
-
-/*
- * ------------------------------------------------------------------------
- * Integers
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p x is an integer number, else false
-bool pmt_is_integer(pmt_t x);
-
-//! Return the pmt value that represents the integer \p x.
-pmt_t pmt_from_long(long x);
-
-/*!
- * \brief Convert pmt to long if possible.
- *
- * When \p x represents an exact integer that fits in a long,
- * return that integer. Else raise an exception, either wrong_type
- * when x is not an exact integer, or out_of_range when it doesn't fit.
- */
-long pmt_to_long(pmt_t x);
-
-/*
- * ------------------------------------------------------------------------
- * uint64_t
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p x is an uint64 number, else false
-bool pmt_is_uint64(pmt_t x);
-
-//! Return the pmt value that represents the uint64 \p x.
-pmt_t pmt_from_uint64(uint64_t x);
-
-/*!
- * \brief Convert pmt to uint64 if possible.
- *
- * When \p x represents an exact integer that fits in a uint64,
- * return that uint64. Else raise an exception, either wrong_type
- * when x is not an exact uint64, or out_of_range when it doesn't fit.
- */
-uint64_t pmt_to_uint64(pmt_t x);
-
-/*
- * ------------------------------------------------------------------------
- * Reals
- * ------------------------------------------------------------------------
- */
-
-/*
- * \brief Return true if \p obj is a real number, else false.
- */
-bool pmt_is_real(pmt_t obj);
-
-//! Return the pmt value that represents double \p x.
-pmt_t pmt_from_double(double x);
-
-/*!
- * \brief Convert pmt to double if possible.
- *
- * Returns the number closest to \p val that is representable
- * as a double. The argument \p val must be a real or integer, otherwise
- * a wrong_type exception is raised.
- */
-double pmt_to_double(pmt_t x);
-
-/*
- * ------------------------------------------------------------------------
- * Complex
- * ------------------------------------------------------------------------
- */
-
-/*!
- * \brief return true if \p obj is a complex number, false otherwise.
- */
-bool pmt_is_complex(pmt_t obj);
-
-//! Return a complex number constructed of the given real and imaginary parts.
-pmt_t pmt_make_rectangular(double re, double im);
-
-pmt_t pmt_from_complex(const std::complex<double> &z);
-
-/*!
- * If \p z is complex, real or integer, return the closest complex<double>.
- * Otherwise, raise the wrong_type exception.
- */
-std::complex<double> pmt_to_complex(pmt_t z);
-
-/*
- * ------------------------------------------------------------------------
- * Pairs
- * ------------------------------------------------------------------------
- */
-
-extern const pmt_t PMT_NIL; //< the empty list
-
-//! Return true if \p x is the empty list, otherwise return false.
-bool pmt_is_null(const pmt_t& x);
-
-//! Return true if \p obj is a pair, else false.
-bool pmt_is_pair(const pmt_t& obj);
-
-//! Return a newly allocated pair whose car is \p x and whose cdr is \p y.
-pmt_t pmt_cons(const pmt_t& x, const pmt_t& y);
-
-//! If \p pair is a pair, return the car of the \p pair, otherwise raise wrong_type.
-pmt_t pmt_car(const pmt_t& pair);
-
-//! If \p pair is a pair, return the cdr of the \p pair, otherwise raise wrong_type.
-pmt_t pmt_cdr(const pmt_t& pair);
-
-//! Stores \p value in the car field of \p pair.
-void pmt_set_car(pmt_t pair, pmt_t value);
-
-//! Stores \p value in the cdr field of \p pair.
-void pmt_set_cdr(pmt_t pair, pmt_t value);
-
-pmt_t pmt_caar(pmt_t pair);
-pmt_t pmt_cadr(pmt_t pair);
-pmt_t pmt_cdar(pmt_t pair);
-pmt_t pmt_cddr(pmt_t pair);
-pmt_t pmt_caddr(pmt_t pair);
-pmt_t pmt_cadddr(pmt_t pair);
-
-/*
- * ------------------------------------------------------------------------
- * Tuples
- *
- * Store a fixed number of objects. Tuples are not modifiable, and thus
- * are excellent for use as messages. Indexing is zero based.
- * Access time to an element is O(1).
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p x is a tuple, othewise false.
-bool pmt_is_tuple(pmt_t x);
-
-pmt_t pmt_make_tuple();
-pmt_t pmt_make_tuple(const pmt_t &e0);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8);
-pmt_t pmt_make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9);
-
-/*!
- * If \p x is a vector or proper list, return a tuple containing the elements of x
- */
-pmt_t pmt_to_tuple(const pmt_t &x);
-
-/*!
- * Return the contents of position \p k of \p tuple.
- * \p k must be a valid index of \p tuple.
- */
-pmt_t pmt_tuple_ref(const pmt_t &tuple, size_t k);
-
-/*
- * ------------------------------------------------------------------------
- * Vectors
- *
- * These vectors can hold any kind of objects. Indexing is zero based.
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p x is a vector, othewise false.
-bool pmt_is_vector(pmt_t x);
-
-//! Make a vector of length \p k, with initial values set to \p fill
-pmt_t pmt_make_vector(size_t k, pmt_t fill);
-
-/*!
- * Return the contents of position \p k of \p vector.
- * \p k must be a valid index of \p vector.
- */
-pmt_t pmt_vector_ref(pmt_t vector, size_t k);
-
-//! Store \p obj in position \p k.
-void pmt_vector_set(pmt_t vector, size_t k, pmt_t obj);
-
-//! Store \p fill in every position of \p vector
-void pmt_vector_fill(pmt_t vector, pmt_t fill);
-
-/*
- * ------------------------------------------------------------------------
- * Binary Large Objects (BLOBs)
- *
- * Handy for passing around uninterpreted chunks of memory.
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p x is a blob, othewise false.
-bool pmt_is_blob(pmt_t x);
-
-/*!
- * \brief Make a blob given a pointer and length in bytes
- *
- * \param buf is the pointer to data to use to create blob
- * \param len is the size of the data in bytes.
- *
- * The data is copied into the blob.
- */
-pmt_t pmt_make_blob(const void *buf, size_t len);
-
-//! Return a pointer to the blob's data
-const void *pmt_blob_data(pmt_t blob);
-
-//! Return the blob's length in bytes
-size_t pmt_blob_length(pmt_t blob);
-
-/*!
- * <pre>
- * ------------------------------------------------------------------------
- * Uniform Numeric Vectors
- *
- * A uniform numeric vector is a vector whose elements are all of single
- * numeric type. pmt offers uniform numeric vectors for signed and
- * unsigned 8-bit, 16-bit, 32-bit, and 64-bit integers, two sizes of
- * floating point values, and complex floating-point numbers of these
- * two sizes. Indexing is zero based.
- *
- * The names of the functions include these tags in their names:
- *
- * u8 unsigned 8-bit integers
- * s8 signed 8-bit integers
- * u16 unsigned 16-bit integers
- * s16 signed 16-bit integers
- * u32 unsigned 32-bit integers
- * s32 signed 32-bit integers
- * u64 unsigned 64-bit integers
- * s64 signed 64-bit integers
- * f32 the C++ type float
- * f64 the C++ type double
- * c32 the C++ type complex<float>
- * c64 the C++ type complex<double>
- * ------------------------------------------------------------------------
- * </pre>
- */
-
-//! true if \p x is any kind of uniform numeric vector
-bool pmt_is_uniform_vector(pmt_t x);
-
-bool pmt_is_u8vector(pmt_t x);
-bool pmt_is_s8vector(pmt_t x);
-bool pmt_is_u16vector(pmt_t x);
-bool pmt_is_s16vector(pmt_t x);
-bool pmt_is_u32vector(pmt_t x);
-bool pmt_is_s32vector(pmt_t x);
-bool pmt_is_u64vector(pmt_t x);
-bool pmt_is_s64vector(pmt_t x);
-bool pmt_is_f32vector(pmt_t x);
-bool pmt_is_f64vector(pmt_t x);
-bool pmt_is_c32vector(pmt_t x);
-bool pmt_is_c64vector(pmt_t x);
-
-pmt_t pmt_make_u8vector(size_t k, uint8_t fill);
-pmt_t pmt_make_s8vector(size_t k, int8_t fill);
-pmt_t pmt_make_u16vector(size_t k, uint16_t fill);
-pmt_t pmt_make_s16vector(size_t k, int16_t fill);
-pmt_t pmt_make_u32vector(size_t k, uint32_t fill);
-pmt_t pmt_make_s32vector(size_t k, int32_t fill);
-pmt_t pmt_make_u64vector(size_t k, uint64_t fill);
-pmt_t pmt_make_s64vector(size_t k, int64_t fill);
-pmt_t pmt_make_f32vector(size_t k, float fill);
-pmt_t pmt_make_f64vector(size_t k, double fill);
-pmt_t pmt_make_c32vector(size_t k, std::complex<float> fill);
-pmt_t pmt_make_c64vector(size_t k, std::complex<double> fill);
-
-
-pmt_t pmt_init_u8vector(size_t k, const std::vector<uint8_t> &data);
-pmt_t pmt_init_s8vector(size_t k, const std::vector<int8_t> &data);
-pmt_t pmt_init_u16vector(size_t k, const std::vector<uint16_t> &data);
-pmt_t pmt_init_s16vector(size_t k, const std::vector<int16_t> &data);
-pmt_t pmt_init_u32vector(size_t k, const std::vector<uint32_t> &data);
-pmt_t pmt_init_s32vector(size_t k, const std::vector<int32_t> &data);
-pmt_t pmt_init_f32vector(size_t k, const std::vector<float> &data);
-pmt_t pmt_init_f64vector(size_t k, const std::vector<double> &data);
-pmt_t pmt_init_c32vector(size_t k, const std::vector<std::complex<float> > &data);
-pmt_t pmt_init_c64vector(size_t k, const std::vector<std::complex<double> > &data);
-
-uint8_t pmt_u8vector_ref(pmt_t v, size_t k);
-int8_t pmt_s8vector_ref(pmt_t v, size_t k);
-uint16_t pmt_u16vector_ref(pmt_t v, size_t k);
-int16_t pmt_s16vector_ref(pmt_t v, size_t k);
-uint32_t pmt_u32vector_ref(pmt_t v, size_t k);
-int32_t pmt_s32vector_ref(pmt_t v, size_t k);
-uint64_t pmt_u64vector_ref(pmt_t v, size_t k);
-int64_t pmt_s64vector_ref(pmt_t v, size_t k);
-float pmt_f32vector_ref(pmt_t v, size_t k);
-double pmt_f64vector_ref(pmt_t v, size_t k);
-std::complex<float> pmt_c32vector_ref(pmt_t v, size_t k);
-std::complex<double> pmt_c64vector_ref(pmt_t v, size_t k);
-
-void pmt_u8vector_set(pmt_t v, size_t k, uint8_t x); //< v[k] = x
-void pmt_s8vector_set(pmt_t v, size_t k, int8_t x);
-void pmt_u16vector_set(pmt_t v, size_t k, uint16_t x);
-void pmt_s16vector_set(pmt_t v, size_t k, int16_t x);
-void pmt_u32vector_set(pmt_t v, size_t k, uint32_t x);
-void pmt_s32vector_set(pmt_t v, size_t k, int32_t x);
-void pmt_u64vector_set(pmt_t v, size_t k, uint64_t x);
-void pmt_s64vector_set(pmt_t v, size_t k, int64_t x);
-void pmt_f32vector_set(pmt_t v, size_t k, float x);
-void pmt_f64vector_set(pmt_t v, size_t k, double x);
-void pmt_c32vector_set(pmt_t v, size_t k, std::complex<float> x);
-void pmt_c64vector_set(pmt_t v, size_t k, std::complex<double> x);
-
-// Return const pointers to the elements
-
-%apply size_t & INOUT { size_t &len };
-
-// works with any; len is in bytes
-// Returns an opaque Python type
-const void *pmt_uniform_vector_elements(pmt_t v, size_t &len);
-
-// Returns a Python tuple
-const std::vector<uint8_t> pmt_u8vector_elements(pmt_t v);
-const std::vector<int8_t> pmt_s8vector_elements(pmt_t v);
-const std::vector<uint16_t> pmt_u16vector_elements(pmt_t v);
-const std::vector<int16_t> pmt_s16vector_elements(pmt_t v);
-const std::vector<uint32_t> pmt_u32vector_elements(pmt_t v);
-const std::vector<int32_t> pmt_s32vector_elements(pmt_t v);
-const std::vector<float> pmt_f32vector_elements(pmt_t v);
-const std::vector<double> pmt_f64vector_elements(pmt_t v);
-const std::vector<std::complex<float> > pmt_c32vector_elements(pmt_t v);
-const std::vector<std::complex<double> > pmt_c64vector_elements(pmt_t v);
-
-/*
- * ------------------------------------------------------------------------
- * Dictionary (a.k.a associative array, hash, map)
- *
- * This is a functional data structure that is persistent. Updating a
- * functional data structure does not destroy the existing version, but
- * rather creates a new version that coexists with the old.
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p obj is a dictionary
-bool pmt_is_dict(const pmt_t &obj);
-
-//! Make an empty dictionary
-pmt_t pmt_make_dict();
-
-//! Return a new dictionary with \p key associated with \p value.
-pmt_t pmt_dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value);
-
-//! Return a new dictionary with \p key removed.
-pmt_t pmt_dict_delete(const pmt_t &dict, const pmt_t &key);
-
-//! Return true if \p key exists in \p dict
-bool pmt_dict_has_key(const pmt_t &dict, const pmt_t &key);
-
-//! If \p key exists in \p dict, return associated value; otherwise return \p not_found.
-pmt_t pmt_dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found);
-
-//! Return list of (key . value) pairs
-pmt_t pmt_dict_items(pmt_t dict);
-
-//! Return list of keys
-pmt_t pmt_dict_keys(pmt_t dict);
-
-//! Return list of values
-pmt_t pmt_dict_values(pmt_t dict);
-
-/*
- * ------------------------------------------------------------------------
- * Any (wraps boost::any -- can be used to wrap pretty much anything)
- *
- * Cannot be serialized or used across process boundaries.
- * See http://www.boost.org/doc/html/any.html
- * ------------------------------------------------------------------------
- */
-
-//! Return true if \p obj is an any
-bool pmt_is_any(pmt_t obj);
-
-//! make an any
-pmt_t pmt_make_any(const boost::any &any);
-
-//! Return underlying boost::any
-boost::any pmt_any_ref(pmt_t obj);
-
-//! Store \p any in \p obj
-void pmt_any_set(pmt_t obj, const boost::any &any);
-
-
-/*
- * ------------------------------------------------------------------------
- * msg_accepter -- pmt representation of gruel::msg_accepter
- * ------------------------------------------------------------------------
- */
-//! Return true if \p obj is a msg_accepter
-bool pmt_is_msg_accepter(const pmt_t &obj);
-
-//! make a msg_accepter
-pmt_t pmt_make_msg_accepter(boost::shared_ptr<gruel::msg_accepter> ma);
-
-//! Return underlying msg_accepter
-boost::shared_ptr<gruel::msg_accepter> pmt_msg_accepter_ref(const pmt_t &obj);
-
-/*
- * ------------------------------------------------------------------------
- * General functions
- * ------------------------------------------------------------------------
- */
-
-//! Return true if x and y are the same object; otherwise return false.
-bool pmt_eq(const pmt_t& x, const pmt_t& y);
-
-/*!
- * \brief Return true if x and y should normally be regarded as the same object, else false.
- *
- * <pre>
- * eqv returns true if:
- * x and y are the same object.
- * x and y are both \#t or both \#f.
- * x and y are both symbols and their names are the same.
- * x and y are both numbers, and are numerically equal.
- * x and y are both the empty list (nil).
- * x and y are pairs or vectors that denote same location in store.
- * </pre>
- */
-bool pmt_eqv(const pmt_t& x, const pmt_t& y);
-
-/*!
- * pmt_equal recursively compares the contents of pairs and vectors,
- * applying pmt_eqv on other objects such as numbers and symbols.
- * pmt_equal may fail to terminate if its arguments are circular data
- * structures.
- */
-bool pmt_equal(const pmt_t& x, const pmt_t& y);
-
-
-//! Return the number of elements in v
-size_t pmt_length(const pmt_t& v);
-
-/*!
- * \brief Find the first pair in \p alist whose car field is \p obj
- * and return that pair.
- *
- * \p alist (for "association list") must be a list of pairs. If no pair
- * in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_eq to compare \p obj with car fields of the pairs in \p alist.
- */
-pmt_t pmt_assq(pmt_t obj, pmt_t alist);
-
-/*!
- * \brief Find the first pair in \p alist whose car field is \p obj
- * and return that pair.
- *
- * \p alist (for "association list") must be a list of pairs. If no pair
- * in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_eqv to compare \p obj with car fields of the pairs in \p alist.
- */
-pmt_t pmt_assv(pmt_t obj, pmt_t alist);
-
-/*!
- * \brief Find the first pair in \p alist whose car field is \p obj
- * and return that pair.
- *
- * \p alist (for "association list") must be a list of pairs. If no pair
- * in \p alist has \p obj as its car then \#f is returned.
- * Uses pmt_equal to compare \p obj with car fields of the pairs in \p alist.
- */
-pmt_t pmt_assoc(pmt_t obj, pmt_t alist);
-
-/*!
- * \brief Apply \p proc element-wise to the elements of list and returns
- * a list of the results, in order.
- *
- * \p list must be a list. The dynamic order in which \p proc is
- * applied to the elements of \p list is unspecified.
- */
-pmt_t pmt_map(pmt_t proc(const pmt_t&), pmt_t list);
-
-/*!
- * \brief reverse \p list.
- *
- * \p list must be a proper list.
- */
-pmt_t pmt_reverse(pmt_t list);
-
-/*!
- * \brief destructively reverse \p list.
- *
- * \p list must be a proper list.
- */
-pmt_t pmt_reverse_x(pmt_t list);
-
-/*!
- * \brief (acons x y a) == (cons (cons x y) a)
- */
-inline static pmt_t
-pmt_acons(pmt_t x, pmt_t y, pmt_t a)
-{
- return pmt_cons(pmt_cons(x, y), a);
-}
-
-/*!
- * \brief locates \p nth element of \n list where the car is the 'zeroth' element.
- */
-pmt_t pmt_nth(size_t n, pmt_t list);
-
-/*!
- * \brief returns the tail of \p list that would be obtained by calling
- * cdr \p n times in succession.
- */
-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 true if every element of \p list1 appears in \p list2, and false otherwise.
- * Comparisons are done with pmt_eqv.
- */
-bool pmt_subsetp(pmt_t list1, pmt_t list2);
-
-/*!
- * \brief Return a list of length 1 containing \p x1
- */
-pmt_t pmt_list1(const pmt_t& x1);
-
-/*!
- * \brief Return a list of length 2 containing \p x1, \p x2
- */
-pmt_t pmt_list2(const pmt_t& x1, const pmt_t& x2);
-
-/*!
- * \brief Return a list of length 3 containing \p x1, \p x2, \p x3
- */
-pmt_t pmt_list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3);
-
-/*!
- * \brief Return a list of length 4 containing \p x1, \p x2, \p x3, \p x4
- */
-pmt_t pmt_list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4);
-
-/*!
- * \brief Return a list of length 5 containing \p x1, \p x2, \p x3, \p x4, \p x5
- */
-pmt_t pmt_list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5);
-
-/*!
- * \brief Return a list of length 6 containing \p x1, \p x2, \p x3, \p x4, \p
- * x5, \p x6
- */
-pmt_t pmt_list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6);
-
-/*!
- * \brief Return \p list with \p item added to it.
- */
-pmt_t pmt_list_add(pmt_t list, const pmt_t& item);
-
-/*!
- * \brief Return \p list with \p item removed
- */
-pmt_t pmt_list_rm(pmt_t list, const pmt_t& item);
-
-/*!
- * \brief Return bool of \p list contains \p item
- */
-bool pmt_list_has(pmt_t list, const pmt_t& item);
-
-/*
- * ------------------------------------------------------------------------
- * read / write
- * ------------------------------------------------------------------------
- */
-extern const pmt_t PMT_EOF; //< The end of file object
-
-//! return true if obj is the EOF object, otherwise return false.
-bool pmt_is_eof_object(pmt_t obj);
-
-/*!
- * read converts external representations of pmt objects into the
- * objects themselves. Read returns the next object parsable from
- * the given input port, updating port to point to the first
- * character past the end of the external representation of the
- * object.
- *
- * If an end of file is encountered in the input before any
- * characters are found that can begin an object, then an end of file
- * object is returned. The port remains open, and further attempts
- * to read will also return an end of file object. If an end of file
- * is encountered after the beginning of an object's external
- * representation, but the external representation is incomplete and
- * therefore not parsable, an error is signaled.
- */
-pmt_t pmt_read(std::istream &port);
-
-/*!
- * Write a written representation of \p obj to the given \p port.
- */
-void pmt_write(pmt_t obj, std::ostream &port);
-
-/*!
- * Return a string representation of \p obj.
- * This is the same output as would be generated by pmt_write.
- */
-std::string pmt_write_string(pmt_t obj);
-
-
-/*!
- * \brief Write pmt string representation to stdout.
- */
-void pmt_print(pmt_t v);
-
-
-/*
- * ------------------------------------------------------------------------
- * portable byte stream representation
- * ------------------------------------------------------------------------
- */
-/*!
- * \brief Write portable byte-serial representation of \p obj to \p sink
- */
-bool pmt_serialize(pmt_t obj, std::streambuf &sink);
-
-/*!
- * \brief Create obj from portable byte-serial representation
- */
-pmt_t pmt_deserialize(std::streambuf &source);
-
-
-void pmt_dump_sizeof(); // debugging
-
-/*!
- * \brief Provide a simple string generating interface to pmt's serialize function
- */
-std::string pmt_serialize_str(pmt_t obj);
-
-/*!
- * \brief Provide a simple string generating interface to pmt's deserialize function
- */
-pmt_t pmt_deserialize_str(std::string str);
+ typedef boost::intrusive_ptr<pmt_base> pmt_t;
+
+ // Allows Python to directly print a PMT object
+ %pythoncode
+ %{
+ swig_int_ptr.__repr__ = lambda self: write_string(self)
+ %}
+
+
+ extern const pmt_t PMT_T;
+ extern const pmt_t PMT_F;
+ extern const pmt_t PMT_NIL;
+ extern const pmt_t PMT_EOF;
+
+ bool is_bool(pmt_t obj);
+ bool is_true(pmt_t obj);
+ bool is_false(pmt_t obj);
+ pmt_t from_bool(bool val);
+ bool to_bool(pmt_t val);
+
+ bool is_symbol(const pmt_t& obj);
+ pmt_t string_to_symbol(const std::string &s);
+ pmt_t intern(const std::string &s);
+ const std::string symbol_to_string(const pmt_t& sym);
+
+ bool is_number(pmt_t obj);
+ bool is_integer(pmt_t x);
+ pmt_t from_long(long x);
+ long to_long(pmt_t x);
+
+ bool is_uint64(pmt_t x);
+ pmt_t from_uint64(uint64_t x);
+ uint64_t to_uint64(pmt_t x);
+
+ bool is_real(pmt_t obj);
+ pmt_t from_double(double x);
+ double to_double(pmt_t x);
+
+ bool is_complex(pmt_t obj);
+ pmt_t make_rectangular(double re, double im);
+ pmt_t from_complex(const std::complex<double> &z);
+ std::complex<double> to_complex(pmt_t z);
+
+ bool is_null(const pmt_t& x);
+ bool is_pair(const pmt_t& obj);
+ pmt_t cons(const pmt_t& x, const pmt_t& y);
+ pmt_t car(const pmt_t& pair);
+ pmt_t cdr(const pmt_t& pair);
+ void set_car(pmt_t pair, pmt_t value);
+ void set_cdr(pmt_t pair, pmt_t value);
+
+ pmt_t caar(pmt_t pair);
+ pmt_t cadr(pmt_t pair);
+ pmt_t cdar(pmt_t pair);
+ pmt_t cddr(pmt_t pair);
+ pmt_t caddr(pmt_t pair);
+ pmt_t cadddr(pmt_t pair);
+
+ bool is_tuple(pmt_t x);
+ pmt_t make_tuple();
+ pmt_t make_tuple(const pmt_t &e0);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8);
+ pmt_t make_tuple(const pmt_t &e0, const pmt_t &e1, const pmt_t &e2, const pmt_t &e3, const pmt_t &e4, const pmt_t &e5, const pmt_t &e6, const pmt_t &e7, const pmt_t &e8, const pmt_t &e9);
+
+ pmt_t to_tuple(const pmt_t &x);
+ pmt_t tuple_ref(const pmt_t &tuple, size_t k);
+
+ bool is_vector(pmt_t x);
+ pmt_t make_vector(size_t k, pmt_t fill);
+ pmt_t vector_ref(pmt_t vector, size_t k);
+ void vector_set(pmt_t vector, size_t k, pmt_t obj);
+ void vector_fill(pmt_t vector, pmt_t fill);
+
+ bool is_blob(pmt_t x);
+ pmt_t make_blob(const void *buf, size_t len);
+ const void *blob_data(pmt_t blob);
+ size_t blob_length(pmt_t blob);
+
+ bool is_uniform_vector(pmt_t x);
+ bool is_u8vector(pmt_t x);
+ bool is_s8vector(pmt_t x);
+ bool is_u16vector(pmt_t x);
+ bool is_s16vector(pmt_t x);
+ bool is_u32vector(pmt_t x);
+ bool is_s32vector(pmt_t x);
+ bool is_u64vector(pmt_t x);
+ bool is_s64vector(pmt_t x);
+ bool is_f32vector(pmt_t x);
+ bool is_f64vector(pmt_t x);
+ bool is_c32vector(pmt_t x);
+ bool is_c64vector(pmt_t x);
+ pmt_t make_u8vector(size_t k, uint8_t fill);
+ pmt_t make_s8vector(size_t k, int8_t fill);
+ pmt_t make_u16vector(size_t k, uint16_t fill);
+ pmt_t make_s16vector(size_t k, int16_t fill);
+ pmt_t make_u32vector(size_t k, uint32_t fill);
+ pmt_t make_s32vector(size_t k, int32_t fill);
+ pmt_t make_u64vector(size_t k, uint64_t fill);
+ pmt_t make_s64vector(size_t k, int64_t fill);
+ pmt_t make_f32vector(size_t k, float fill);
+ pmt_t make_f64vector(size_t k, double fill);
+ pmt_t make_c32vector(size_t k, std::complex<float> fill);
+ pmt_t make_c64vector(size_t k, std::complex<double> fill);
+ pmt_t init_u8vector(size_t k, const std::vector<uint8_t> &data);
+ pmt_t init_s8vector(size_t k, const std::vector<int8_t> &data);
+ pmt_t init_u16vector(size_t k, const std::vector<uint16_t> &data);
+ pmt_t init_s16vector(size_t k, const std::vector<int16_t> &data);
+ pmt_t init_u32vector(size_t k, const std::vector<uint32_t> &data);
+ pmt_t init_s32vector(size_t k, const std::vector<int32_t> &data);
+ pmt_t init_f32vector(size_t k, const std::vector<float> &data);
+ pmt_t init_f64vector(size_t k, const std::vector<double> &data);
+ pmt_t init_c32vector(size_t k, const std::vector<std::complex<float> > &data);
+ pmt_t init_c64vector(size_t k, const std::vector<std::complex<double> > &data);
+ uint8_t u8vector_ref(pmt_t v, size_t k);
+ int8_t s8vector_ref(pmt_t v, size_t k);
+ uint16_t u16vector_ref(pmt_t v, size_t k);
+ int16_t s16vector_ref(pmt_t v, size_t k);
+ uint32_t u32vector_ref(pmt_t v, size_t k);
+ int32_t s32vector_ref(pmt_t v, size_t k);
+ uint64_t u64vector_ref(pmt_t v, size_t k);
+ int64_t s64vector_ref(pmt_t v, size_t k);
+ float f32vector_ref(pmt_t v, size_t k);
+ double f64vector_ref(pmt_t v, size_t k);
+ std::complex<float> c32vector_ref(pmt_t v, size_t k);
+ std::complex<double> c64vector_ref(pmt_t v, size_t k);
+ void u8vector_set(pmt_t v, size_t k, uint8_t x); //< v[k] = x
+ void s8vector_set(pmt_t v, size_t k, int8_t x);
+ void u16vector_set(pmt_t v, size_t k, uint16_t x);
+ void s16vector_set(pmt_t v, size_t k, int16_t x);
+ void u32vector_set(pmt_t v, size_t k, uint32_t x);
+ void s32vector_set(pmt_t v, size_t k, int32_t x);
+ void u64vector_set(pmt_t v, size_t k, uint64_t x);
+ void s64vector_set(pmt_t v, size_t k, int64_t x);
+ void f32vector_set(pmt_t v, size_t k, float x);
+ void f64vector_set(pmt_t v, size_t k, double x);
+ void c32vector_set(pmt_t v, size_t k, std::complex<float> x);
+ void c64vector_set(pmt_t v, size_t k, std::complex<double> x);
+
+ %apply size_t & INOUT { size_t &len };
+ const void *uniform_vector_elements(pmt_t v, size_t &len);
+
+ const std::vector<uint8_t> u8vector_elements(pmt_t v);
+ const std::vector<int8_t> s8vector_elements(pmt_t v);
+ const std::vector<uint16_t> u16vector_elements(pmt_t v);
+ const std::vector<int16_t> s16vector_elements(pmt_t v);
+ const std::vector<uint32_t> u32vector_elements(pmt_t v);
+ const std::vector<int32_t> s32vector_elements(pmt_t v);
+ const std::vector<float> f32vector_elements(pmt_t v);
+ const std::vector<double> f64vector_elements(pmt_t v);
+ const std::vector<std::complex<float> > c32vector_elements(pmt_t v);
+ const std::vector<std::complex<double> > c64vector_elements(pmt_t v);
+
+ bool is_dict(const pmt_t &obj);
+ pmt_t make_dict();
+ pmt_t dict_add(const pmt_t &dict, const pmt_t &key, const pmt_t &value);
+ pmt_t dict_delete(const pmt_t &dict, const pmt_t &key);
+ bool dict_has_key(const pmt_t &dict, const pmt_t &key);
+ pmt_t dict_ref(const pmt_t &dict, const pmt_t &key, const pmt_t &not_found);
+ pmt_t dict_items(pmt_t dict);
+ pmt_t dict_keys(pmt_t dict);
+ pmt_t dict_values(pmt_t dict);
+
+ bool is_any(pmt_t obj);
+ pmt_t make_any(const boost::any &any);
+ boost::any any_ref(pmt_t obj);
+ void any_set(pmt_t obj, const boost::any &any);
+
+ bool is_msg_accepter(const pmt_t &obj);
+ pmt_t make_msg_accepter(boost::shared_ptr<gruel::msg_accepter> ma);
+ boost::shared_ptr<gruel::msg_accepter> msg_accepter_ref(const pmt_t &obj);
+
+ bool eq(const pmt_t& x, const pmt_t& y);
+ bool eqv(const pmt_t& x, const pmt_t& y);
+ bool equal(const pmt_t& x, const pmt_t& y);
+ size_t length(const pmt_t& v);
+ pmt_t assq(pmt_t obj, pmt_t alist);
+ pmt_t assv(pmt_t obj, pmt_t alist);
+ pmt_t assoc(pmt_t obj, pmt_t alist);
+ pmt_t map(pmt_t proc(const pmt_t&), pmt_t list);
+ pmt_t reverse(pmt_t list);
+ pmt_t reverse_x(pmt_t list);
+ inline static pmt_t acons(pmt_t x, pmt_t y, pmt_t a);
+ pmt_t nth(size_t n, pmt_t list);
+ pmt_t nthcdr(size_t n, pmt_t list);
+ pmt_t memq(pmt_t obj, pmt_t list);
+ pmt_t memv(pmt_t obj, pmt_t list);
+ pmt_t member(pmt_t obj, pmt_t list);
+ bool subsetp(pmt_t list1, pmt_t list2);
+
+ pmt_t list1(const pmt_t& x1);
+ pmt_t list2(const pmt_t& x1, const pmt_t& x2);
+ pmt_t list3(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3);
+ pmt_t list4(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4);
+ pmt_t list5(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5);
+ pmt_t list6(const pmt_t& x1, const pmt_t& x2, const pmt_t& x3, const pmt_t& x4, const pmt_t& x5, const pmt_t& x6);
+ pmt_t list_add(pmt_t list, const pmt_t& item);
+ pmt_t list_rm(pmt_t list, const pmt_t& item);
+ bool list_has(pmt_t list, const pmt_t& item);
+
+ bool is_eof_object(pmt_t obj);
+ pmt_t read(std::istream &port);
+ void write(pmt_t obj, std::ostream &port);
+ std::string write_string(pmt_t obj);
+
+ //void pmt_print(pmt_t v);
+
+ bool serialize(pmt_t obj, std::streambuf &sink);
+ pmt_t deserialize(std::streambuf &source);
+ void dump_sizeof();
+ std::string serialize_str(pmt_t obj);
+ pmt_t deserialize_str(std::string str);
} //namespace pmt