summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/math/vco.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/lib/math/vco.h')
-rw-r--r--gnuradio-runtime/lib/math/vco.h104
1 files changed, 53 insertions, 51 deletions
diff --git a/gnuradio-runtime/lib/math/vco.h b/gnuradio-runtime/lib/math/vco.h
index 7ac1e1ca6d..1687de6af7 100644
--- a/gnuradio-runtime/lib/math/vco.h
+++ b/gnuradio-runtime/lib/math/vco.h
@@ -32,83 +32,85 @@
namespace gr {
- /*!
- * \brief base class template for Voltage Controlled Oscillator (VCO)
- * \ingroup misc
- */
- template<class o_type, class i_type>
- class vco
- {
- public:
+/*!
+ * \brief base class template for Voltage Controlled Oscillator (VCO)
+ * \ingroup misc
+ */
+template <class o_type, class i_type>
+class vco
+{
+public:
vco() : d_phase(0) {}
virtual ~vco() {}
// radians
- void set_phase(double angle) {
- d_phase = angle;
- }
+ void set_phase(double angle) { d_phase = angle; }
- void adjust_phase(double delta_phase) {
- d_phase += delta_phase;
- if(fabs (d_phase) > GR_M_PI){
+ void adjust_phase(double delta_phase)
+ {
+ d_phase += delta_phase;
+ if (fabs(d_phase) > GR_M_PI) {
- while(d_phase > GR_M_PI)
- d_phase -= 2*GR_M_PI;
+ while (d_phase > GR_M_PI)
+ d_phase -= 2 * GR_M_PI;
- while(d_phase < -GR_M_PI)
- d_phase += 2*GR_M_PI;
- }
+ while (d_phase < -GR_M_PI)
+ d_phase += 2 * GR_M_PI;
+ }
}
double get_phase() const { return d_phase; }
// compute sin and cos for current phase angle
- void sincos(float *sinx, float *cosx) const;
+ void sincos(float* sinx, float* cosx) const;
- void sincos(gr_complex *output, const float *input,
- int noutput_items, double k, double ampl = 1.0);
+ void sincos(gr_complex* output,
+ const float* input,
+ int noutput_items,
+ double k,
+ double ampl = 1.0);
// compute cos or sin for current phase angle
float cos() const { return std::cos(d_phase); }
float sin() const { return std::sin(d_phase); }
// compute a block at a time
- void cos(float *output, const float *input,
- int noutput_items, double k, double ampl = 1.0);
+ void cos(float* output,
+ const float* input,
+ int noutput_items,
+ double k,
+ double ampl = 1.0);
- protected:
+protected:
double d_phase;
- };
+};
- template<class o_type, class i_type>
- void
- vco<o_type,i_type>::sincos(float *sinx, float *cosx) const
- {
+template <class o_type, class i_type>
+void vco<o_type, i_type>::sincos(float* sinx, float* cosx) const
+{
gr::sincosf(d_phase, sinx, cosx);
- }
-
- template<class o_type, class i_type>
- void
- vco<o_type,i_type>::sincos(gr_complex *output, const float *input,
- int noutput_items, double k, double ampl)
- {
- for(int i = 0; i < noutput_items; i++) {
- output[i] = gr_complex(cos() * ampl, sin() * ampl);
- adjust_phase(input[i] * k);
+}
+
+template <class o_type, class i_type>
+void vco<o_type, i_type>::sincos(
+ gr_complex* output, const float* input, int noutput_items, double k, double ampl)
+{
+ for (int i = 0; i < noutput_items; i++) {
+ output[i] = gr_complex(cos() * ampl, sin() * ampl);
+ adjust_phase(input[i] * k);
}
- }
-
- template<class o_type, class i_type>
- void
- vco<o_type,i_type>::cos(float *output, const float *input,
- int noutput_items, double k, double ampl)
- {
- for(int i = 0; i < noutput_items; i++) {
- output[i] = cos() * ampl;
- adjust_phase(input[i] * k);
+}
+
+template <class o_type, class i_type>
+void vco<o_type, i_type>::cos(
+ float* output, const float* input, int noutput_items, double k, double ampl)
+{
+ for (int i = 0; i < noutput_items; i++) {
+ output[i] = cos() * ampl;
+ adjust_phase(input[i] * k);
}
- }
+}
} /* namespace gr */