[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 07/28: basic add/mult const, needs test
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 07/28: basic add/mult const, needs test |
Date: |
Mon, 15 Aug 2016 00:47:05 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
nwest pushed a commit to annotated tag gr_basic_work
in repository gnuradio.
commit 99fdd38e38e402dcc5accf3abc53d46a7189bbc1
Author: Josh Blum <address@hidden>
Date: Wed Nov 9 06:44:48 2011 -0800
basic add/mult const, needs test
---
gr-basic/grc/basic_add.xml | 2 +-
gr-basic/grc/basic_add_const.xml | 55 +++++++++++
gr-basic/grc/basic_block_tree.xml | 2 +
gr-basic/grc/basic_divide.xml | 2 +-
gr-basic/grc/basic_multiply.xml | 2 +-
gr-basic/grc/basic_multiply_const.xml | 55 +++++++++++
gr-basic/grc/basic_subtract.xml | 2 +-
gr-basic/include/CMakeLists.txt | 3 +
gr-basic/include/gr_basic_add.h | 18 +---
.../{gr_basic_multiply.h => gr_basic_add_const.h} | 45 ++++-----
gr-basic/include/gr_basic_divide.h | 22 +----
gr-basic/include/gr_basic_multiply.h | 22 +----
..._basic_multiply.h => gr_basic_multiply_const.h} | 45 ++++-----
.../{gr_basic_divide.h => gr_basic_op_types.h} | 47 ++++-----
gr-basic/include/gr_basic_subtract.h | 18 +---
gr-basic/lib/CMakeLists.txt | 2 +
gr-basic/lib/gr_basic_add.cc | 26 ++---
gr-basic/lib/gr_basic_add_const.cc | 110 +++++++++++++++++++++
gr-basic/lib/gr_basic_divide.cc | 26 ++---
gr-basic/lib/gr_basic_multiply.cc | 26 ++---
gr-basic/lib/gr_basic_multiply_const.cc | 110 +++++++++++++++++++++
gr-basic/lib/gr_basic_subtract.cc | 26 ++---
gr-basic/swig/basic_ops.i | 13 +++
23 files changed, 474 insertions(+), 205 deletions(-)
diff --git a/gr-basic/grc/basic_add.xml b/gr-basic/grc/basic_add.xml
index d02bc1b..a38799b 100644
--- a/gr-basic/grc/basic_add.xml
+++ b/gr-basic/grc/basic_add.xml
@@ -9,7 +9,7 @@
<name>Add</name>
<key>basic_add</key>
<import>from gnuradio import basic</import>
- <make>basic.add(basic.ADD_$($type().upper()), $vlen)</make>
+ <make>basic.add(basic.OP_$($type().upper()), $vlen)</make>
<param>
<name>IO Type</name>
<key>type</key>
diff --git a/gr-basic/grc/basic_add_const.xml b/gr-basic/grc/basic_add_const.xml
new file mode 100644
index 0000000..92358fd
--- /dev/null
+++ b/gr-basic/grc/basic_add_const.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Add Const Block
+###################################################
+ -->
+<block>
+ <name>Add Const</name>
+ <key>basic_add_const</key>
+ <import>from gnuradio import basic</import>
+ <make>basic.add_const(basic.OP_$($type().upper()), $vlen)
+self.$(id).set_value($value)</make>
+ <callback>set_value($value)</callback>
+ <param>
+ <name>IO Type</name>
+ <key>type</key>
+ <value>fc32</value>
+ <type>enum</type>
+ <option><name>FC64</name><key>fc64</key></option>
+ <option><name>F64</name><key>f64</key></option>
+ <option><name>FC32</name><key>fc32</key></option>
+ <option><name>F32</name><key>f32</key></option>
+ <option><name>SC64</name><key>sc64</key></option>
+ <option><name>S64</name><key>s64</key></option>
+ <option><name>SC32</name><key>sc32</key></option>
+ <option><name>S32</name><key>s32</key></option>
+ <option><name>SC16</name><key>sc16</key></option>
+ <option><name>S16</name><key>s16</key></option>
+ <option><name>SC8</name><key>sc8</key></option>
+ <option><name>S8</name><key>s8</key></option>
+ </param>
+ <param>
+ <name>Vec Length</name>
+ <key>vlen</key>
+ <value>1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Value</name>
+ <key>value</key>
+ <value>0</value>
+ <type>$($vlen() == 1 and 'complex' or 'complex_vector')</type>
+ </param>
+ <check>$vlen > 0</check>
+ <sink>
+ <name>in</name>
+ <type>$type</type>
+ <vlen>$vlen</vlen>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type</type>
+ <vlen>$vlen</vlen>
+ </source>
+</block>
diff --git a/gr-basic/grc/basic_block_tree.xml
b/gr-basic/grc/basic_block_tree.xml
index 1f41958..3d5f83d 100644
--- a/gr-basic/grc/basic_block_tree.xml
+++ b/gr-basic/grc/basic_block_tree.xml
@@ -31,8 +31,10 @@
<cat>
<name>Basic</name>
<block>basic_add</block>
+ <block>basic_add_const</block>
<block>basic_subtract</block>
<block>basic_multiply</block>
+ <block>basic_multiply_const</block>
<block>basic_divide</block>
</cat>
</cat>
diff --git a/gr-basic/grc/basic_divide.xml b/gr-basic/grc/basic_divide.xml
index ac41336..9189d3d 100644
--- a/gr-basic/grc/basic_divide.xml
+++ b/gr-basic/grc/basic_divide.xml
@@ -9,7 +9,7 @@
<name>Divide</name>
<key>basic_divide</key>
<import>from gnuradio import basic</import>
- <make>basic.divide(basic.DIVIDE_$($type().upper()), $vlen)</make>
+ <make>basic.divide(basic.OP_$($type().upper()), $vlen)</make>
<param>
<name>IO Type</name>
<key>type</key>
diff --git a/gr-basic/grc/basic_multiply.xml b/gr-basic/grc/basic_multiply.xml
index e902a39..2874a0f 100644
--- a/gr-basic/grc/basic_multiply.xml
+++ b/gr-basic/grc/basic_multiply.xml
@@ -9,7 +9,7 @@
<name>Multiply</name>
<key>basic_multiply</key>
<import>from gnuradio import basic</import>
- <make>basic.multiply(basic.MULTIPLY_$($type().upper()), $vlen)</make>
+ <make>basic.multiply(basic.OP_$($type().upper()), $vlen)</make>
<param>
<name>IO Type</name>
<key>type</key>
diff --git a/gr-basic/grc/basic_multiply_const.xml
b/gr-basic/grc/basic_multiply_const.xml
new file mode 100644
index 0000000..43e35ed
--- /dev/null
+++ b/gr-basic/grc/basic_multiply_const.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Multiply Const Block
+###################################################
+ -->
+<block>
+ <name>Multiply Const</name>
+ <key>basic_multiply_const</key>
+ <import>from gnuradio import basic</import>
+ <make>basic.multiply_const(basic.OP_$($type().upper()), $vlen)
+self.$(id).set_value($value)</make>
+ <callback>set_value($value)</callback>
+ <param>
+ <name>IO Type</name>
+ <key>type</key>
+ <value>fc32</value>
+ <type>enum</type>
+ <option><name>FC64</name><key>fc64</key></option>
+ <option><name>F64</name><key>f64</key></option>
+ <option><name>FC32</name><key>fc32</key></option>
+ <option><name>F32</name><key>f32</key></option>
+ <option><name>SC64</name><key>sc64</key></option>
+ <option><name>S64</name><key>s64</key></option>
+ <option><name>SC32</name><key>sc32</key></option>
+ <option><name>S32</name><key>s32</key></option>
+ <option><name>SC16</name><key>sc16</key></option>
+ <option><name>S16</name><key>s16</key></option>
+ <option><name>SC8</name><key>sc8</key></option>
+ <option><name>S8</name><key>s8</key></option>
+ </param>
+ <param>
+ <name>Vec Length</name>
+ <key>vlen</key>
+ <value>1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Value</name>
+ <key>value</key>
+ <value>0</value>
+ <type>$($vlen() == 1 and 'complex' or 'complex_vector')</type>
+ </param>
+ <check>$vlen > 0</check>
+ <sink>
+ <name>in</name>
+ <type>$type</type>
+ <vlen>$vlen</vlen>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type</type>
+ <vlen>$vlen</vlen>
+ </source>
+</block>
diff --git a/gr-basic/grc/basic_subtract.xml b/gr-basic/grc/basic_subtract.xml
index 733713c..8f90247 100644
--- a/gr-basic/grc/basic_subtract.xml
+++ b/gr-basic/grc/basic_subtract.xml
@@ -9,7 +9,7 @@
<name>Subtract</name>
<key>basic_subtract</key>
<import>from gnuradio import basic</import>
- <make>basic.subtract(basic.SUBTRACT_$($type().upper()), $vlen)</make>
+ <make>basic.subtract(basic.OP_$($type().upper()), $vlen)</make>
<param>
<name>IO Type</name>
<key>type</key>
diff --git a/gr-basic/include/CMakeLists.txt b/gr-basic/include/CMakeLists.txt
index beff7cb..cc503ed 100644
--- a/gr-basic/include/CMakeLists.txt
+++ b/gr-basic/include/CMakeLists.txt
@@ -23,8 +23,11 @@
install(FILES
gr_basic_api.h
gr_basic_add.h
+ gr_basic_add_const.h
gr_basic_divide.h
gr_basic_multiply.h
+ gr_basic_multiply_const.h
+ gr_basic_op_types.h
gr_basic_subtract.h
DESTINATION ${GR_INCLUDE_DIR}/gnuradio
COMPONENT "basic_devel"
diff --git a/gr-basic/include/gr_basic_add.h b/gr-basic/include/gr_basic_add.h
index a9ef6a6..f9007ff 100644
--- a/gr-basic/include/gr_basic_add.h
+++ b/gr-basic/include/gr_basic_add.h
@@ -23,21 +23,7 @@
#include <gr_basic_api.h>
#include <gr_sync_block.h>
-
-enum add_type{
- ADD_FC64,
- ADD_F64,
- ADD_FC32,
- ADD_F32,
- ADD_SC64,
- ADD_S64,
- ADD_SC32,
- ADD_S32,
- ADD_SC16,
- ADD_S16,
- ADD_SC8,
- ADD_S8,
-};
+#include <gr_basic_op_types.h>
class GR_BASIC_API basic_add : virtual public gr_sync_block{
public:
@@ -45,7 +31,7 @@ public:
};
GR_BASIC_API basic_add::sptr basic_make_add(
- add_type type, const size_t vlen = 1
+ op_type type, const size_t vlen = 1
);
#endif /* INCLUDED_GR_BASIC_ADD_H */
diff --git a/gr-basic/include/gr_basic_multiply.h
b/gr-basic/include/gr_basic_add_const.h
similarity index 55%
copy from gr-basic/include/gr_basic_multiply.h
copy to gr-basic/include/gr_basic_add_const.h
index 54e4d6d..0cd0263 100644
--- a/gr-basic/include/gr_basic_multiply.h
+++ b/gr-basic/include/gr_basic_add_const.h
@@ -18,38 +18,33 @@
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
-#ifndef INCLUDED_GR_BASIC_MULTIPLY_H
-#define INCLUDED_GR_BASIC_MULTIPLY_H
+#ifndef INCLUDED_GR_BASIC_ADD_CONST_H
+#define INCLUDED_GR_BASIC_ADD_CONST_H
#include <gr_basic_api.h>
#include <gr_sync_block.h>
+#include <gr_basic_op_types.h>
+#include <complex>
-//TODO may support non-homogeneous IO types,
-//MULTIPLY_S8_S16 (int8 input, int16 output)
-//so this will easily fit into the framework.
+class GR_BASIC_API basic_add_const : virtual public gr_sync_block{
+public:
+ typedef boost::shared_ptr<basic_add_const> sptr;
-enum multiply_type{
- MULTIPLY_FC64,
- MULTIPLY_F64,
- MULTIPLY_FC32,
- MULTIPLY_F32,
- MULTIPLY_SC64,
- MULTIPLY_S64,
- MULTIPLY_SC32,
- MULTIPLY_S32,
- MULTIPLY_SC16,
- MULTIPLY_S16,
- MULTIPLY_SC8,
- MULTIPLY_S8,
-};
+ /*!
+ * Set the value to be added.
+ * This is a double vector to cover all possible types.
+ */
+ virtual void set_value(const std::vector<double> &val) = 0;
+
+ //! Convenience operator to set when vlen == 1
+ void set_value(const double val){
+ return this->set_value(std::vector<double>(1, val));
+ }
-class GR_BASIC_API basic_multiply : virtual public gr_sync_block{
-public:
- typedef boost::shared_ptr<basic_multiply> sptr;
};
-GR_BASIC_API basic_multiply::sptr basic_make_multiply(
- multiply_type type, const size_t vlen = 1
+GR_BASIC_API basic_add_const::sptr basic_make_add_const(
+ op_type type, const size_t vlen = 1
);
-#endif /* INCLUDED_GR_BASIC_MULTIPLY_H */
+#endif /* INCLUDED_GR_BASIC_ADD_CONST_H */
diff --git a/gr-basic/include/gr_basic_divide.h
b/gr-basic/include/gr_basic_divide.h
index ed00df5..100271a 100644
--- a/gr-basic/include/gr_basic_divide.h
+++ b/gr-basic/include/gr_basic_divide.h
@@ -23,25 +23,7 @@
#include <gr_basic_api.h>
#include <gr_sync_block.h>
-
-//TODO may support non-homogeneous IO types,
-//DIVIDE_S16_S8 (int16 input, int8 output)
-//so this will easily fit into the framework.
-
-enum divide_type{
- DIVIDE_FC64,
- DIVIDE_F64,
- DIVIDE_FC32,
- DIVIDE_F32,
- DIVIDE_SC64,
- DIVIDE_S64,
- DIVIDE_SC32,
- DIVIDE_S32,
- DIVIDE_SC16,
- DIVIDE_S16,
- DIVIDE_SC8,
- DIVIDE_S8,
-};
+#include <gr_basic_op_types.h>
class GR_BASIC_API basic_divide : virtual public gr_sync_block{
public:
@@ -49,7 +31,7 @@ public:
};
GR_BASIC_API basic_divide::sptr basic_make_divide(
- divide_type type, const size_t vlen = 1
+ op_type type, const size_t vlen = 1
);
#endif /* INCLUDED_GR_BASIC_DIVIDE_H */
diff --git a/gr-basic/include/gr_basic_multiply.h
b/gr-basic/include/gr_basic_multiply.h
index 54e4d6d..ceb0e80 100644
--- a/gr-basic/include/gr_basic_multiply.h
+++ b/gr-basic/include/gr_basic_multiply.h
@@ -23,25 +23,7 @@
#include <gr_basic_api.h>
#include <gr_sync_block.h>
-
-//TODO may support non-homogeneous IO types,
-//MULTIPLY_S8_S16 (int8 input, int16 output)
-//so this will easily fit into the framework.
-
-enum multiply_type{
- MULTIPLY_FC64,
- MULTIPLY_F64,
- MULTIPLY_FC32,
- MULTIPLY_F32,
- MULTIPLY_SC64,
- MULTIPLY_S64,
- MULTIPLY_SC32,
- MULTIPLY_S32,
- MULTIPLY_SC16,
- MULTIPLY_S16,
- MULTIPLY_SC8,
- MULTIPLY_S8,
-};
+#include <gr_basic_op_types.h>
class GR_BASIC_API basic_multiply : virtual public gr_sync_block{
public:
@@ -49,7 +31,7 @@ public:
};
GR_BASIC_API basic_multiply::sptr basic_make_multiply(
- multiply_type type, const size_t vlen = 1
+ op_type type, const size_t vlen = 1
);
#endif /* INCLUDED_GR_BASIC_MULTIPLY_H */
diff --git a/gr-basic/include/gr_basic_multiply.h
b/gr-basic/include/gr_basic_multiply_const.h
similarity index 53%
copy from gr-basic/include/gr_basic_multiply.h
copy to gr-basic/include/gr_basic_multiply_const.h
index 54e4d6d..10fe6f2 100644
--- a/gr-basic/include/gr_basic_multiply.h
+++ b/gr-basic/include/gr_basic_multiply_const.h
@@ -18,38 +18,33 @@
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
-#ifndef INCLUDED_GR_BASIC_MULTIPLY_H
-#define INCLUDED_GR_BASIC_MULTIPLY_H
+#ifndef INCLUDED_GR_BASIC_MULTIPLY_CONST_H
+#define INCLUDED_GR_BASIC_MULTIPLY_CONST_H
#include <gr_basic_api.h>
#include <gr_sync_block.h>
+#include <gr_basic_op_types.h>
+#include <complex>
-//TODO may support non-homogeneous IO types,
-//MULTIPLY_S8_S16 (int8 input, int16 output)
-//so this will easily fit into the framework.
+class GR_BASIC_API basic_multiply_const : virtual public gr_sync_block{
+public:
+ typedef boost::shared_ptr<basic_multiply_const> sptr;
-enum multiply_type{
- MULTIPLY_FC64,
- MULTIPLY_F64,
- MULTIPLY_FC32,
- MULTIPLY_F32,
- MULTIPLY_SC64,
- MULTIPLY_S64,
- MULTIPLY_SC32,
- MULTIPLY_S32,
- MULTIPLY_SC16,
- MULTIPLY_S16,
- MULTIPLY_SC8,
- MULTIPLY_S8,
-};
+ /*!
+ * Set the value to be multiplied.
+ * This is a double vector to cover all possible types.
+ */
+ virtual void set_value(const std::vector<double> &val) = 0;
+
+ //! Convenience operator to set when vlen == 1
+ void set_value(const double val){
+ return this->set_value(std::vector<double>(1, val));
+ }
-class GR_BASIC_API basic_multiply : virtual public gr_sync_block{
-public:
- typedef boost::shared_ptr<basic_multiply> sptr;
};
-GR_BASIC_API basic_multiply::sptr basic_make_multiply(
- multiply_type type, const size_t vlen = 1
+GR_BASIC_API basic_multiply_const::sptr basic_make_multiply_const(
+ op_type type, const size_t vlen = 1
);
-#endif /* INCLUDED_GR_BASIC_MULTIPLY_H */
+#endif /* INCLUDED_GR_BASIC_MULTIPLY_CONST_H */
diff --git a/gr-basic/include/gr_basic_divide.h
b/gr-basic/include/gr_basic_op_types.h
similarity index 61%
copy from gr-basic/include/gr_basic_divide.h
copy to gr-basic/include/gr_basic_op_types.h
index ed00df5..0645dde 100644
--- a/gr-basic/include/gr_basic_divide.h
+++ b/gr-basic/include/gr_basic_op_types.h
@@ -18,38 +18,31 @@
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
-#ifndef INCLUDED_GR_BASIC_DIVIDE_H
-#define INCLUDED_GR_BASIC_DIVIDE_H
-
-#include <gr_basic_api.h>
-#include <gr_sync_block.h>
+#ifndef INCLUDED_GR_BASIC_OP_TYPES_H
+#define INCLUDED_GR_BASIC_OP_TYPES_H
//TODO may support non-homogeneous IO types,
//DIVIDE_S16_S8 (int16 input, int8 output)
//so this will easily fit into the framework.
-enum divide_type{
- DIVIDE_FC64,
- DIVIDE_F64,
- DIVIDE_FC32,
- DIVIDE_F32,
- DIVIDE_SC64,
- DIVIDE_S64,
- DIVIDE_SC32,
- DIVIDE_S32,
- DIVIDE_SC16,
- DIVIDE_S16,
- DIVIDE_SC8,
- DIVIDE_S8,
-};
+//TODO may support non-homogeneous IO types,
+//MULTIPLY_S8_S16 (int8 input, int16 output)
+//so this will easily fit into the framework.
-class GR_BASIC_API basic_divide : virtual public gr_sync_block{
-public:
- typedef boost::shared_ptr<basic_divide> sptr;
+//! Most common types for operator blocks (add, multiply, etc...)
+enum op_type{
+ OP_FC64,
+ OP_F64,
+ OP_FC32,
+ OP_F32,
+ OP_SC64,
+ OP_S64,
+ OP_SC32,
+ OP_S32,
+ OP_SC16,
+ OP_S16,
+ OP_SC8,
+ OP_S8,
};
-GR_BASIC_API basic_divide::sptr basic_make_divide(
- divide_type type, const size_t vlen = 1
-);
-
-#endif /* INCLUDED_GR_BASIC_DIVIDE_H */
+#endif /* INCLUDED_GR_BASIC_OP_TYPES_H */
diff --git a/gr-basic/include/gr_basic_subtract.h
b/gr-basic/include/gr_basic_subtract.h
index 7000630..a4ef405 100644
--- a/gr-basic/include/gr_basic_subtract.h
+++ b/gr-basic/include/gr_basic_subtract.h
@@ -23,21 +23,7 @@
#include <gr_basic_api.h>
#include <gr_sync_block.h>
-
-enum subtract_type{
- SUBTRACT_FC64,
- SUBTRACT_F64,
- SUBTRACT_FC32,
- SUBTRACT_F32,
- SUBTRACT_SC64,
- SUBTRACT_S64,
- SUBTRACT_SC32,
- SUBTRACT_S32,
- SUBTRACT_SC16,
- SUBTRACT_S16,
- SUBTRACT_SC8,
- SUBTRACT_S8,
-};
+#include <gr_basic_op_types.h>
class GR_BASIC_API basic_subtract : virtual public gr_sync_block{
public:
@@ -45,7 +31,7 @@ public:
};
GR_BASIC_API basic_subtract::sptr basic_make_subtract(
- subtract_type type, const size_t vlen = 1
+ op_type type, const size_t vlen = 1
);
#endif /* INCLUDED_GR_BASIC_SUBTRACT_H */
diff --git a/gr-basic/lib/CMakeLists.txt b/gr-basic/lib/CMakeLists.txt
index 254b99f..3e03578 100644
--- a/gr-basic/lib/CMakeLists.txt
+++ b/gr-basic/lib/CMakeLists.txt
@@ -34,8 +34,10 @@ link_directories(${Boost_LIBRARY_DIRS})
########################################################################
list(APPEND gr_basic_sources
gr_basic_add.cc
+ gr_basic_add_const.cc
gr_basic_divide.cc
gr_basic_multiply.cc
+ gr_basic_multiply_const.cc
gr_basic_subtract.cc
)
diff --git a/gr-basic/lib/gr_basic_add.cc b/gr-basic/lib/gr_basic_add.cc
index f56bf56..5adb2d2 100644
--- a/gr-basic/lib/gr_basic_add.cc
+++ b/gr-basic/lib/gr_basic_add.cc
@@ -109,26 +109,26 @@ private:
* Adder factory function
**********************************************************************/
basic_add::sptr basic_make_add(
- add_type type, const size_t vlen
+ op_type type, const size_t vlen
){
switch(type){
- case ADD_FC64: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<double>(2*vlen));
- case ADD_F64: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<double>(vlen));
+ case OP_FC64: return basic_add::sptr(new
gr_basic_add_generic<double>(2*vlen));
+ case OP_F64: return basic_add::sptr(new
gr_basic_add_generic<double>(vlen));
- case ADD_FC32: return boost::shared_ptr<basic_add>(new
gr_basic_add_f32(2*vlen));
- case ADD_F32: return boost::shared_ptr<basic_add>(new
gr_basic_add_f32(vlen));
+ case OP_FC32: return basic_add::sptr(new gr_basic_add_f32(2*vlen));
+ case OP_F32: return basic_add::sptr(new gr_basic_add_f32(vlen));
- case ADD_SC64: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int64_t>(2*vlen));
- case ADD_S64: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int64_t>(vlen));
+ case OP_SC64: return basic_add::sptr(new
gr_basic_add_generic<int64_t>(2*vlen));
+ case OP_S64: return basic_add::sptr(new
gr_basic_add_generic<int64_t>(vlen));
- case ADD_SC32: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int32_t>(2*vlen));
- case ADD_S32: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int32_t>(vlen));
+ case OP_SC32: return basic_add::sptr(new
gr_basic_add_generic<int32_t>(2*vlen));
+ case OP_S32: return basic_add::sptr(new
gr_basic_add_generic<int32_t>(vlen));
- case ADD_SC16: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int16_t>(2*vlen));
- case ADD_S16: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int16_t>(vlen));
+ case OP_SC16: return basic_add::sptr(new
gr_basic_add_generic<int16_t>(2*vlen));
+ case OP_S16: return basic_add::sptr(new
gr_basic_add_generic<int16_t>(vlen));
- case ADD_SC8: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int8_t>(2*vlen));
- case ADD_S8: return boost::shared_ptr<basic_add>(new
gr_basic_add_generic<int8_t>(vlen));
+ case OP_SC8: return basic_add::sptr(new
gr_basic_add_generic<int8_t>(2*vlen));
+ case OP_S8: return basic_add::sptr(new gr_basic_add_generic<int8_t>(vlen));
default: throw std::invalid_argument("basic_make_add got unknown add
type");
}
diff --git a/gr-basic/lib/gr_basic_add_const.cc
b/gr-basic/lib/gr_basic_add_const.cc
new file mode 100644
index 0000000..05e4f0f
--- /dev/null
+++ b/gr-basic/lib/gr_basic_add_const.cc
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2011 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gr_basic_add_const.h>
+#include <gr_io_signature.h>
+#include <stdexcept>
+#include <complex>
+#include <volk/volk.h>
+
+/***********************************************************************
+ * Generic add const implementation
+ **********************************************************************/
+template <typename type>
+class gr_basic_add_const_generic : public basic_add_const{
+public:
+ gr_basic_add_const_generic(const size_t vlen):
+ gr_sync_block(
+ "add const generic",
+ gr_make_io_signature (1, 1, sizeof(type)*vlen),
+ gr_make_io_signature (1, 1, sizeof(type)*vlen)
+ ),
+ _vlen(vlen)
+ {
+ //NOP
+ }
+
+ int work(
+ int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items
+ ){
+ const size_t n_nums = noutput_items * _vlen;
+ type *out = reinterpret_cast<type *>(output_items[0]);
+ const type *in = reinterpret_cast<const type *>(input_items[0]);
+
+ //simple vec len 1 for the fast
+ if (_vlen == 1){
+ const type val = _val[0];
+ for (size_t i = 0; i < n_nums; i++){
+ out[i] = in[i] + val;
+ }
+ }
+
+ //general case for any vlen
+ else{
+ for (size_t i = 0; i < n_nums; i++){
+ out[i] = in[i] + _val[i%_val.size()];
+ }
+ }
+ return noutput_items;
+ }
+
+ void set_value(const std::vector<double> &val){
+ _val.resize(val.size());
+ for (size_t i = 0; i < val.size(); i++){
+ _val[i] = type(val[i]);
+ }
+ }
+
+private:
+ const size_t _vlen;
+ std::vector<type> _val;
+};
+
+/***********************************************************************
+ * Adder factory function
+ **********************************************************************/
+basic_add_const::sptr basic_make_add_const(
+ op_type type, const size_t vlen
+){
+ switch(type){
+ case OP_FC64: return basic_add_const::sptr(new
gr_basic_add_const_generic<double>(2*vlen));
+ case OP_F64: return basic_add_const::sptr(new
gr_basic_add_const_generic<double>(vlen));
+
+ case OP_FC32: return basic_add_const::sptr(new
gr_basic_add_const_generic<float>(2*vlen));
+ case OP_F32: return basic_add_const::sptr(new
gr_basic_add_const_generic<float>(vlen));
+
+ case OP_SC64: return basic_add_const::sptr(new
gr_basic_add_const_generic<int64_t>(2*vlen));
+ case OP_S64: return basic_add_const::sptr(new
gr_basic_add_const_generic<int64_t>(vlen));
+
+ case OP_SC32: return basic_add_const::sptr(new
gr_basic_add_const_generic<int32_t>(2*vlen));
+ case OP_S32: return basic_add_const::sptr(new
gr_basic_add_const_generic<int32_t>(vlen));
+
+ case OP_SC16: return basic_add_const::sptr(new
gr_basic_add_const_generic<int16_t>(2*vlen));
+ case OP_S16: return basic_add_const::sptr(new
gr_basic_add_const_generic<int16_t>(vlen));
+
+ case OP_SC8: return basic_add_const::sptr(new
gr_basic_add_const_generic<int8_t>(2*vlen));
+ case OP_S8: return basic_add_const::sptr(new
gr_basic_add_const_generic<int8_t>(vlen));
+
+ default: throw std::invalid_argument("basic_make_add got unknown add
type");
+ }
+}
diff --git a/gr-basic/lib/gr_basic_divide.cc b/gr-basic/lib/gr_basic_divide.cc
index 19f9ec2..a1cde8d 100644
--- a/gr-basic/lib/gr_basic_divide.cc
+++ b/gr-basic/lib/gr_basic_divide.cc
@@ -70,26 +70,26 @@ private:
* Adder factory function
**********************************************************************/
basic_divide::sptr basic_make_divide(
- divide_type type, const size_t vlen
+ op_type type, const size_t vlen
){
switch(type){
- case DIVIDE_FC64: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<double> >(vlen));
- case DIVIDE_F64: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<double>(vlen));
+ case OP_FC64: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<double> >(vlen));
+ case OP_F64: return basic_divide::sptr(new
gr_basic_divide_generic<double>(vlen));
- case DIVIDE_FC32: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<float> >(vlen));
- case DIVIDE_F32: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<float>(vlen));
+ case OP_FC32: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<float> >(vlen));
+ case OP_F32: return basic_divide::sptr(new
gr_basic_divide_generic<float>(vlen));
- case DIVIDE_SC64: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<int64_t> >(vlen));
- case DIVIDE_S64: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<int64_t>(vlen));
+ case OP_SC64: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<int64_t> >(vlen));
+ case OP_S64: return basic_divide::sptr(new
gr_basic_divide_generic<int64_t>(vlen));
- case DIVIDE_SC32: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<int32_t> >(vlen));
- case DIVIDE_S32: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<int32_t>(vlen));
+ case OP_SC32: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<int32_t> >(vlen));
+ case OP_S32: return basic_divide::sptr(new
gr_basic_divide_generic<int32_t>(vlen));
- case DIVIDE_SC16: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<int16_t> >(vlen));
- case DIVIDE_S16: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<int16_t>(vlen));
+ case OP_SC16: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<int16_t> >(vlen));
+ case OP_S16: return basic_divide::sptr(new
gr_basic_divide_generic<int16_t>(vlen));
- case DIVIDE_SC8: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<std::complex<int8_t> >(vlen));
- case DIVIDE_S8: return boost::shared_ptr<basic_divide>(new
gr_basic_divide_generic<int8_t>(vlen));
+ case OP_SC8: return basic_divide::sptr(new
gr_basic_divide_generic<std::complex<int8_t> >(vlen));
+ case OP_S8: return basic_divide::sptr(new
gr_basic_divide_generic<int8_t>(vlen));
default: throw std::invalid_argument("basic_make_divide got unknown divide
type");
}
diff --git a/gr-basic/lib/gr_basic_multiply.cc
b/gr-basic/lib/gr_basic_multiply.cc
index decacf7..d6033a7 100644
--- a/gr-basic/lib/gr_basic_multiply.cc
+++ b/gr-basic/lib/gr_basic_multiply.cc
@@ -148,26 +148,26 @@ private:
* Adder factory function
**********************************************************************/
basic_multiply::sptr basic_make_multiply(
- multiply_type type, const size_t vlen
+ op_type type, const size_t vlen
){
switch(type){
- case MULTIPLY_FC64: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<std::complex<double> >(vlen));
- case MULTIPLY_F64: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<double>(vlen));
+ case OP_FC64: return basic_multiply::sptr(new
gr_basic_multiply_generic<std::complex<double> >(vlen));
+ case OP_F64: return basic_multiply::sptr(new
gr_basic_multiply_generic<double>(vlen));
- case MULTIPLY_FC32: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_fc32(vlen));
- case MULTIPLY_F32: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_f32(vlen));
+ case OP_FC32: return basic_multiply::sptr(new
gr_basic_multiply_fc32(vlen));
+ case OP_F32: return basic_multiply::sptr(new gr_basic_multiply_f32(vlen));
- case MULTIPLY_SC64: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<std::complex<int64_t> >(vlen));
- case MULTIPLY_S64: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<int64_t>(vlen));
+ case OP_SC64: return basic_multiply::sptr(new
gr_basic_multiply_generic<std::complex<int64_t> >(vlen));
+ case OP_S64: return basic_multiply::sptr(new
gr_basic_multiply_generic<int64_t>(vlen));
- case MULTIPLY_SC32: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<std::complex<int32_t> >(vlen));
- case MULTIPLY_S32: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<int32_t>(vlen));
+ case OP_SC32: return basic_multiply::sptr(new
gr_basic_multiply_generic<std::complex<int32_t> >(vlen));
+ case OP_S32: return basic_multiply::sptr(new
gr_basic_multiply_generic<int32_t>(vlen));
- case MULTIPLY_SC16: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<std::complex<int16_t> >(vlen));
- case MULTIPLY_S16: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<int16_t>(vlen));
+ case OP_SC16: return basic_multiply::sptr(new
gr_basic_multiply_generic<std::complex<int16_t> >(vlen));
+ case OP_S16: return basic_multiply::sptr(new
gr_basic_multiply_generic<int16_t>(vlen));
- case MULTIPLY_SC8: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<std::complex<int8_t> >(vlen));
- case MULTIPLY_S8: return boost::shared_ptr<basic_multiply>(new
gr_basic_multiply_generic<int8_t>(vlen));
+ case OP_SC8: return basic_multiply::sptr(new
gr_basic_multiply_generic<std::complex<int8_t> >(vlen));
+ case OP_S8: return basic_multiply::sptr(new
gr_basic_multiply_generic<int8_t>(vlen));
default: throw std::invalid_argument("basic_make_multiply got unknown
multiply type");
}
diff --git a/gr-basic/lib/gr_basic_multiply_const.cc
b/gr-basic/lib/gr_basic_multiply_const.cc
new file mode 100644
index 0000000..8ade8a0
--- /dev/null
+++ b/gr-basic/lib/gr_basic_multiply_const.cc
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2011 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gr_basic_multiply_const.h>
+#include <gr_io_signature.h>
+#include <stdexcept>
+#include <complex>
+#include <volk/volk.h>
+
+/***********************************************************************
+ * Generic multiply const implementation
+ **********************************************************************/
+template <typename type>
+class gr_basic_multiply_const_generic : public basic_multiply_const{
+public:
+ gr_basic_multiply_const_generic(const size_t vlen):
+ gr_sync_block(
+ "multiply const generic",
+ gr_make_io_signature (1, 1, sizeof(type)*vlen),
+ gr_make_io_signature (1, 1, sizeof(type)*vlen)
+ ),
+ _vlen(vlen)
+ {
+ //NOP
+ }
+
+ int work(
+ int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items
+ ){
+ const size_t n_nums = noutput_items * _vlen;
+ type *out = reinterpret_cast<type *>(output_items[0]);
+ const type *in = reinterpret_cast<const type *>(input_items[0]);
+
+ //simple vec len 1 for the fast
+ if (_vlen == 1){
+ const type val = _val[0];
+ for (size_t i = 0; i < n_nums; i++){
+ out[i] = in[i] * val;
+ }
+ }
+
+ //general case for any vlen
+ else{
+ for (size_t i = 0; i < n_nums; i++){
+ out[i] = in[i] * _val[i%_val.size()];
+ }
+ }
+ return noutput_items;
+ }
+
+ void set_value(const std::vector<double> &val){
+ _val.resize(val.size());
+ for (size_t i = 0; i < val.size(); i++){
+ _val[i] = type(val[i]);
+ }
+ }
+
+private:
+ const size_t _vlen;
+ std::vector<type> _val;
+};
+
+/***********************************************************************
+ * Adder factory function
+ **********************************************************************/
+basic_multiply_const::sptr basic_make_multiply_const(
+ op_type type, const size_t vlen
+){
+ switch(type){
+ case OP_FC64: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<double>(2*vlen));
+ case OP_F64: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<double>(vlen));
+
+ case OP_FC32: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<float>(2*vlen));
+ case OP_F32: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<float>(vlen));
+
+ case OP_SC64: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int64_t>(2*vlen));
+ case OP_S64: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int64_t>(vlen));
+
+ case OP_SC32: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int32_t>(2*vlen));
+ case OP_S32: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int32_t>(vlen));
+
+ case OP_SC16: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int16_t>(2*vlen));
+ case OP_S16: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int16_t>(vlen));
+
+ case OP_SC8: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int8_t>(2*vlen));
+ case OP_S8: return basic_multiply_const::sptr(new
gr_basic_multiply_const_generic<int8_t>(vlen));
+
+ default: throw std::invalid_argument("basic_make_multiply got unknown
multiply type");
+ }
+}
diff --git a/gr-basic/lib/gr_basic_subtract.cc
b/gr-basic/lib/gr_basic_subtract.cc
index bde41ed..6d268e0 100644
--- a/gr-basic/lib/gr_basic_subtract.cc
+++ b/gr-basic/lib/gr_basic_subtract.cc
@@ -70,26 +70,26 @@ private:
* Adder factory function
**********************************************************************/
basic_subtract::sptr basic_make_subtract(
- subtract_type type, const size_t vlen
+ op_type type, const size_t vlen
){
switch(type){
- case SUBTRACT_FC64: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<double>(2*vlen));
- case SUBTRACT_F64: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<double>(vlen));
+ case OP_FC64: return basic_subtract::sptr(new
gr_basic_subtract_generic<double>(2*vlen));
+ case OP_F64: return basic_subtract::sptr(new
gr_basic_subtract_generic<double>(vlen));
- case SUBTRACT_FC32: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<float>(2*vlen));
- case SUBTRACT_F32: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<float>(vlen));
+ case OP_FC32: return basic_subtract::sptr(new
gr_basic_subtract_generic<float>(2*vlen));
+ case OP_F32: return basic_subtract::sptr(new
gr_basic_subtract_generic<float>(vlen));
- case SUBTRACT_SC64: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int64_t>(2*vlen));
- case SUBTRACT_S64: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int64_t>(vlen));
+ case OP_SC64: return basic_subtract::sptr(new
gr_basic_subtract_generic<int64_t>(2*vlen));
+ case OP_S64: return basic_subtract::sptr(new
gr_basic_subtract_generic<int64_t>(vlen));
- case SUBTRACT_SC32: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int32_t>(2*vlen));
- case SUBTRACT_S32: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int32_t>(vlen));
+ case OP_SC32: return basic_subtract::sptr(new
gr_basic_subtract_generic<int32_t>(2*vlen));
+ case OP_S32: return basic_subtract::sptr(new
gr_basic_subtract_generic<int32_t>(vlen));
- case SUBTRACT_SC16: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int16_t>(2*vlen));
- case SUBTRACT_S16: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int16_t>(vlen));
+ case OP_SC16: return basic_subtract::sptr(new
gr_basic_subtract_generic<int16_t>(2*vlen));
+ case OP_S16: return basic_subtract::sptr(new
gr_basic_subtract_generic<int16_t>(vlen));
- case SUBTRACT_SC8: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int8_t>(2*vlen));
- case SUBTRACT_S8: return boost::shared_ptr<basic_subtract>(new
gr_basic_subtract_generic<int8_t>(vlen));
+ case OP_SC8: return basic_subtract::sptr(new
gr_basic_subtract_generic<int8_t>(2*vlen));
+ case OP_S8: return basic_subtract::sptr(new
gr_basic_subtract_generic<int8_t>(vlen));
default: throw std::invalid_argument("basic_make_subtract got unknown
subtract type");
}
diff --git a/gr-basic/swig/basic_ops.i b/gr-basic/swig/basic_ops.i
index 1f3d27a..2487136 100644
--- a/gr-basic/swig/basic_ops.i
+++ b/gr-basic/swig/basic_ops.i
@@ -24,22 +24,35 @@
////////////////////////////////////////////////////////////////////////
%{
#include <gr_basic_add.h>
+#include <gr_basic_add_const.h>
#include <gr_basic_divide.h>
#include <gr_basic_multiply.h>
+#include <gr_basic_multiply_const.h>
#include <gr_basic_subtract.h>
%}
////////////////////////////////////////////////////////////////////////
+// import types
+////////////////////////////////////////////////////////////////////////
+%include <gr_basic_op_types.h>
+
+////////////////////////////////////////////////////////////////////////
// block magic
////////////////////////////////////////////////////////////////////////
GR_SWIG_BLOCK_MAGIC(basic,add)
%include <gr_basic_add.h>
+GR_SWIG_BLOCK_MAGIC(basic,add_const)
+%include <gr_basic_add_const.h>
+
GR_SWIG_BLOCK_MAGIC(basic,divide)
%include <gr_basic_divide.h>
GR_SWIG_BLOCK_MAGIC(basic,multiply)
%include <gr_basic_multiply.h>
+GR_SWIG_BLOCK_MAGIC(basic,multiply_const)
+%include <gr_basic_multiply_const.h>
+
GR_SWIG_BLOCK_MAGIC(basic,subtract)
%include <gr_basic_subtract.h>
- [Commit-gnuradio] [gnuradio] 09/28: Volk: added 32fc x scalar multiply, implemented in Orc & generic. Orc/SSE tested 10x faster than generic., (continued)
- [Commit-gnuradio] [gnuradio] 09/28: Volk: added 32fc x scalar multiply, implemented in Orc & generic. Orc/SSE tested 10x faster than generic., git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 25/28: core: added set_output_alignment (policy 2 version), git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 11/28: basic: use volk multiply scalar function for multiply_const fc32, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 24/28: basic: set inplace on gr-basic math blocks, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 16/28: basic: performance tweak for sig source index mod, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 04/28: basic: added other basic operators, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 01/28: basic: attempt at new component, partial adder implementation, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 27/28: basic: added dynamic delay block, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 13/28: Volk: whoops, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 17/28: core: squashed in-place block work, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 07/28: basic add/mult const, needs test,
git <=
- [Commit-gnuradio] [gnuradio] 15/28: basic: added super fast signal source, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 26/28: basic: use set_output_alignment in the basic math blocks, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 19/28: core: make in-place buffering enabled per port, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 22/28: filter: added 32f decimating fir + tweaks, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 18/28: basic: added stream selector block, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 05/28: basic: whoops, wrong operator, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 12/28: Volk: 32f_s32f_multiply_32f, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 03/28: basic: added int16 data types and filled in float32, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 08/28: basic: working add/mult const blocks, block magic2 for static make, git, 2016/08/14
- [Commit-gnuradio] [gnuradio] 20/28: core: enable inplace on some core math blocks, git, 2016/08/14