summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnuradio-core/src/lib/general/gr_cpm.cc8
-rw-r--r--gr-digital/include/digital_constellation.h2
-rw-r--r--gr-digital/include/digital_constellation_receiver_cb.h3
3 files changed, 9 insertions, 4 deletions
diff --git a/gnuradio-core/src/lib/general/gr_cpm.cc b/gnuradio-core/src/lib/general/gr_cpm.cc
index a00526b52..94a428c58 100644
--- a/gnuradio-core/src/lib/general/gr_cpm.cc
+++ b/gnuradio-core/src/lib/general/gr_cpm.cc
@@ -28,6 +28,10 @@
#include <cfloat>
#include <gr_cpm.h>
+//gives us erf on compilers without it
+#include <boost/math/special_functions/erf.hpp>
+namespace bm = boost::math;
+
#ifndef M_TWOPI
# define M_TWOPI (2*M_PI)
#endif
@@ -178,8 +182,8 @@ generate_cpm_gaussian_taps(unsigned samples_per_sym, unsigned L, double bt)
double alpha = 5.336446256636997 * bt;
for (unsigned i = 0; i < samples_per_sym * L; i++) {
double k = i - Ls/2; // Causal to acausal
- taps_d[i] = (erf(alpha * (k / samples_per_sym + 0.5)) -
- erf(alpha * (k / samples_per_sym - 0.5)))
+ taps_d[i] = (bm::erf(alpha * (k / samples_per_sym + 0.5)) -
+ bm::erf(alpha * (k / samples_per_sym - 0.5)))
* 0.5 / samples_per_sym;
taps[i] = (float) taps_d[i];
}
diff --git a/gr-digital/include/digital_constellation.h b/gr-digital/include/digital_constellation.h
index 9b2a58588..3de350532 100644
--- a/gr-digital/include/digital_constellation.h
+++ b/gr-digital/include/digital_constellation.h
@@ -86,7 +86,7 @@ public:
unsigned int dimensionality() {return d_dimensionality;}
unsigned int bits_per_symbol () {
- return floor(log(d_constellation.size())/d_dimensionality/log(2));
+ return floor(log(1.0*d_constellation.size())/d_dimensionality/log(2.0));
}
unsigned int arity () {
diff --git a/gr-digital/include/digital_constellation_receiver_cb.h b/gr-digital/include/digital_constellation_receiver_cb.h
index d33be8958..59b2d2785 100644
--- a/gr-digital/include/digital_constellation_receiver_cb.h
+++ b/gr-digital/include/digital_constellation_receiver_cb.h
@@ -26,6 +26,7 @@
#include <digital_api.h>
#include <gr_block.h>
#include <digital_constellation.h>
+#include <gruel/attributes.h>
#include <gri_control_loop.h>
#include <gr_complex.h>
#include <math.h>
@@ -102,7 +103,7 @@ private:
static const unsigned int DLLEN = 8;
//! delay line plus some length for overflow protection
- gr_complex d_dl[2*DLLEN] __attribute__ ((aligned(8)));
+ __GR_ATTR_ALIGNED(8) gr_complex d_dl[2*DLLEN];
//! index to delay line
unsigned int d_dl_idx;