Imported Upstream version 3.2.2
[debian/gnuradio] / gnuradio-core / src / lib / general / gr_complex_to_xxx.cc
index d519b3a7e70113265da0627110f5a810632a5f4f..abffa4da13324a4b6dea4b62cfd3dfe5b3e5f2d3 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2004,2008 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -26,6 +26,7 @@
 
 #include <gr_complex_to_xxx.h>
 #include <gr_io_signature.h>
+#include <gr_math.h>
 
 // ----------------------------------------------------------------
 
@@ -50,7 +51,7 @@ gr_complex_to_float::work (int noutput_items,
 {
   const gr_complex *in = (const gr_complex *) input_items[0];
   float *out0 = (float *) output_items[0];
-  float *out1 = (float *) output_items[1];
+  float* out1;
   int noi = noutput_items * d_vlen;
 
   switch (output_items.size ()){
@@ -61,6 +62,7 @@ gr_complex_to_float::work (int noutput_items,
     break;
 
   case 2:
+    out1 = (float *) output_items[1];
     for (int i = 0; i < noi; i++){
       out0[i] = in[i].real ();
       out1[i] = in[i].imag ();
@@ -226,7 +228,8 @@ gr_complex_to_arg::work (int noutput_items,
   int noi = noutput_items * d_vlen;
 
   for (int i = 0; i < noi; i++){
-    out[i] = std::arg (in[i]);
+    //    out[i] = std::arg (in[i]);
+    out[i] = gr_fast_atan2f(in[i]);
   }
   return noutput_items;
 }