Changeset 9670

Show
Ignore:
Timestamp:
09/28/08 14:27:31
Author:
trondeau
Message:

Converting all frequency values from float to double for high-frequency precision.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_base.cc

    r9656 r9670  
    2323#include <stdexcept> 
    2424 
    25 tune_result::tune_result(float baseband, float dxc, float residual, bool inv) 
     25tune_result::tune_result(double baseband, double dxc, double residual, bool inv) 
    2626  : ok(false), baseband_freq(baseband), dxc_freq(dxc),  
    2727    residual_freq(residual), inverted(inv) 
     
    126126} 
    127127 
    128 float  
     128double  
    129129db_base::freq_min() 
    130130{ 
     
    132132} 
    133133 
    134 float  
     134double 
    135135db_base::freq_max() 
    136136{ 
     
    139139 
    140140struct freq_result_t 
    141 db_base::set_freq(float target_freq) 
     141db_base::set_freq(double target_freq) 
    142142{ 
    143143  // Set the frequency. 
    144144  // 
    145145  // @param freq:  target RF frequency in Hz 
    146   // @type freq:   float 
     146  // @type freq:   double 
    147147  //  
    148148  // @returns (ok, actual_baseband_freq) where: 
     
    223223 
    224224void  
    225 db_base::set_lo_offset(float offset) 
     225db_base::set_lo_offset(double offset) 
    226226{ 
    227227  // Set how much LO is offset from requested frequency 
     
    230230} 
    231231 
    232 float  
     232double  
    233233db_base::lo_offset() 
    234234{ 
     
    256256// 
    257257     
    258 float  
     258double 
    259259db_base::_refclk_freq()  
    260260{ 
     
    287287 
    288288tune_result  
    289 db_base::tune(int chan, float target_freq) 
     289db_base::tune(int chan, double target_freq) 
    290290{ 
    291291  /* 
     
    307307  // Set the daughterboard frequency 
    308308  bool ok=true; 
    309   float baseband_freq; 
     309  double baseband_freq; 
    310310  struct freq_result_t freq = set_freq(target_freq); 
    311311  ok = freq.ok; 
     
    343343   
    344344  // residual_freq is the offset left over because of dxc tuning step size 
    345   float residual_freq; 
     345  double residual_freq; 
    346346  if(!d_tx) { 
    347347    residual_freq = dxc_freq.ddc_freq - ((usrp_standard_rx*)d_usrp)->rx_freq(chan); 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_base.h

    r9656 r9670  
    3636{ 
    3737public:   
    38   tune_result(float baseband=0, float dxc=0,  
    39               float residual=0, bool inv=0); 
     38  tune_result(double baseband=0, double dxc=0,  
     39              double residual=0, bool inv=0); 
    4040  ~tune_result(); 
    4141 
    4242  bool  ok; 
    43   float baseband_freq; 
    44   float dxc_freq; 
    45   float residual_freq; 
     43  double baseband_freq; 
     44  double dxc_freq; 
     45  double residual_freq; 
    4646  bool  inverted; 
    4747}; 
     
    5050{ 
    5151  bool  ok; 
    52   float baseband_freq; 
     52  double baseband_freq; 
    5353}; 
    5454 
     
    7878  virtual float gain_max(); 
    7979  virtual float gain_db_per_step(); 
    80   virtual float freq_min(); 
    81   virtual float freq_max(); 
    82   virtual struct freq_result_t set_freq(float target_freq); 
     80  virtual double freq_min(); 
     81  virtual double freq_max(); 
     82  virtual struct freq_result_t set_freq(double target_freq); 
    8383  virtual bool set_gain(float gain); 
    8484  virtual bool is_quadrature(); 
     
    8787  virtual void set_enable(bool on); 
    8888  virtual void set_auto_tr(bool on); 
    89   virtual void set_lo_offset(float offset); 
    90   virtual float lo_offset(); 
     89  virtual void set_lo_offset(double offset); 
     90  virtual double lo_offset(); 
    9191  virtual void select_rx_antenna(int which_antenna); 
    9292 
    93   tune_result tune(int chan, float target_freq); 
     93  tune_result tune(int chan, double target_freq); 
    9494 
    9595 protected: 
    9696  void _enable_refclk(bool enable); 
    97   virtual float _refclk_freq(); 
     97  virtual double _refclk_freq(); 
    9898  virtual int _refclk_divisor(); 
    9999 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_base.i

    r9656 r9670  
    3131{ 
    3232public:   
    33   tune_result(float baseband=0, float dxc=0,  
    34               float residual=0, bool inv=0); 
     33  tune_result(double baseband=0, double dxc=0,  
     34              double residual=0, bool inv=0); 
    3535  ~tune_result(); 
    3636 
    3737  bool  ok; 
    38   float baseband_freq; 
    39   float dxc_freq; 
    40   float residual_freq; 
     38  double baseband_freq; 
     39  double dxc_freq; 
     40  double residual_freq; 
    4141  bool  inverted; 
    4242}; 
     
    4545{ 
    4646  bool  ok; 
    47   float baseband_freq; 
     47  double baseband_freq; 
    4848}; 
    4949 
     
    6161  float gain_max(); 
    6262  float gain_db_per_step(); 
    63   float freq_min(); 
    64   float freq_max(); 
    65   struct freq_result_t set_freq(float target_freq); 
     63  double freq_min(); 
     64  double freq_max(); 
     65  struct freq_result_t set_freq(double target_freq); 
    6666  bool set_gain(float gain); 
    6767  bool is_quadrature(); 
     
    7070  void set_enable(bool on); 
    7171  void set_auto_tr(bool on); 
    72   void set_lo_offset(float offset); 
    73   float lo_offset(); 
     72  void set_lo_offset(double offset); 
     73  double lo_offset(); 
    7474  void select_rx_antenna(int which_antenna); 
    7575 
    76   tune_result tune(int chan, float target_freq); 
     76  tune_result tune(int chan, double target_freq); 
    7777}; 
    7878 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_basic.cc

    r9656 r9670  
    4444} 
    4545 
    46 float  
     46double  
    4747db_basic_tx::freq_min()  
    4848{ 
     
    5050} 
    5151 
    52 float  
     52double  
    5353db_basic_tx::freq_max()  
    5454{ 
     
    5757 
    5858struct freq_result_t  
    59 db_basic_tx::set_freq(float target_freq) 
     59db_basic_tx::set_freq(double target_freq) 
    6060{ 
    6161  // Set the frequency. 
    6262  //  
    6363  // @param freq:  target RF frequency in Hz 
    64   // @type freq:   float 
     64  // @type freq:   double 
    6565  //  
    6666  // @returns (ok, actual_baseband_freq) where: 
     
    140140} 
    141141 
    142 float 
     142double 
    143143db_basic_rx::freq_min()  
    144144{ 
     
    146146} 
    147147 
    148 float 
     148double 
    149149db_basic_rx::freq_max() 
    150150{ 
     
    153153 
    154154struct freq_result_t  
    155 db_basic_rx::set_freq(float target_freq) 
     155db_basic_rx::set_freq(double target_freq) 
    156156{ 
    157157  // Set the frequency. 
    158158  //  
    159159  // @param freq:  target RF frequency in Hz 
    160   // @type freq:   float 
     160  // @type freq:   double 
    161161  //  
    162162  // @returns (ok, actual_baseband_freq) where: 
     
    225225} 
    226226 
    227 float  
     227double  
    228228db_lf_tx::freq_min()  
    229229{ 
     
    231231} 
    232232 
    233 float  
     233double  
    234234db_lf_tx::freq_max() 
    235235{ 
     
    255255} 
    256256 
    257 float 
     257double 
    258258db_lf_rx::freq_min()  
    259259{ 
     
    261261} 
    262262 
    263 float 
     263double 
    264264db_lf_rx::freq_max()  
    265265{ 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_basic.h

    r9656 r9670  
    3838  float gain_max(); 
    3939  float gain_db_per_step(); 
    40   float freq_min(); 
    41   float freq_max(); 
    42   struct freq_result_t set_freq(float target_freq); 
     40  double freq_min(); 
     41  double freq_max(); 
     42  struct freq_result_t set_freq(double target_freq); 
    4343  bool  set_gain(float gain); 
    4444  bool  is_quadrature(); 
     
    5858  float gain_max(); 
    5959  float gain_db_per_step(); 
    60   float freq_min(); 
    61   float freq_max(); 
    62   struct freq_result_t set_freq(float target_freq); 
     60  double freq_min(); 
     61  double freq_max(); 
     62  struct freq_result_t set_freq(double target_freq); 
    6363  bool set_gain(float gain); 
    6464  bool is_quadrature(); 
     
    7878  ~db_lf_rx(); 
    7979   
    80   float freq_min(); 
    81   float freq_max(); 
     80  double freq_min(); 
     81  double freq_max(); 
    8282}; 
    8383 
     
    9292  ~db_lf_tx(); 
    9393   
    94   float freq_min(); 
    95   float freq_max(); 
     94  double freq_min(); 
     95  double freq_max(); 
    9696}; 
    9797 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dbs_rx.cc

    r9656 r9670  
    342342} 
    343343 
    344 float 
     344double 
    345345db_dbs_rx::freq_min() 
    346346{ 
     
    348348} 
    349349 
    350 float 
     350double 
    351351db_dbs_rx::freq_max() 
    352352{ 
     
    355355 
    356356struct freq_result_t 
    357 db_dbs_rx::set_freq(float freq) 
     357db_dbs_rx::set_freq(double freq) 
    358358{ 
    359359  // Set the frequency. 
    360360  //  
    361361  // @param freq:  target RF frequency in Hz 
    362   // @type freq:   float 
     362  // @type freq:   double 
    363363  //  
    364364  // @returns (ok, actual_baseband_freq) where: 
     
    371371    return args; 
    372372  } 
    373  
    374   float vcofreq; 
     373   
     374  double vcofreq; 
    375375  if(freq<1150e6) { 
    376376    _set_div2(0); 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dbs_rx.h

    r9656 r9670  
    7171  float gain_max(); 
    7272  float gain_db_per_step(); 
    73   float freq_min(); 
    74   float freq_max(); 
    75   struct freq_result_t set_freq(float freq); 
     73  double freq_min(); 
     74  double freq_max(); 
     75  struct freq_result_t set_freq(double freq); 
    7676  bool  set_gain(float gain); 
    7777  bool  is_quadrature(); 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dtt754.cc

    r9658 r9670  
    190190} 
    191191 
    192 float 
     192double 
    193193db_dtt754::freq_min() 
    194194{ 
     
    196196} 
    197197 
    198 float 
     198double 
    199199db_dtt754::freq_max() 
    200200{ 
     
    203203 
    204204struct freq_result_t 
    205 db_dtt754::set_freq(float target_freq) 
     205db_dtt754::set_freq(double target_freq) 
    206206{ 
    207207  /* 
     
    217217  } 
    218218         
    219   float target_lo_freq = target_freq + d_IF;  // High side mixing 
     219  double target_lo_freq = target_freq + d_IF;  // High side mixing 
    220220 
    221221  int divisor = (int)(0.5+(target_lo_freq / d_f_ref)); 
    222   float actual_lo_freq = d_f_ref*divisor; 
     222  double actual_lo_freq = d_f_ref*divisor; 
    223223   
    224224  if((divisor & ~0x7fff) != 0) {                // must be 15-bits or less 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dtt754.h

    r9656 r9670  
    3737  bool  set_gain(float gain); 
    3838 
    39   float freq_min(); 
    40   float freq_max(); 
    41   struct freq_result_t set_freq(float target_freq); 
     39  double freq_min(); 
     40  double freq_max(); 
     41  struct freq_result_t set_freq(double target_freq); 
    4242   
    4343  bool is_quadrature(); 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dtt768.cc

    r9658 r9670  
    162162} 
    163163 
    164 float 
     164double 
    165165db_dtt768::freq_min() 
    166166{ 
     
    168168} 
    169169 
    170 float 
     170double 
    171171db_dtt768::freq_max() 
    172172{ 
     
    175175 
    176176struct freq_result_t 
    177 db_dtt768::set_freq(float target_freq) 
     177db_dtt768::set_freq(double target_freq) 
    178178{ 
    179179  /* 
     
    189189  } 
    190190         
    191   float target_lo_freq = target_freq + d_IF;  // High side mixing 
     191  double target_lo_freq = target_freq + d_IF;  // High side mixing 
    192192 
    193193  int divisor = (int)(0.5+(target_lo_freq / d_f_ref)); 
    194   float actual_lo_freq = d_f_ref*divisor; 
     194  double actual_lo_freq = d_f_ref*divisor; 
    195195   
    196196  if((divisor & ~0x7fff) != 0) {                // must be 15-bits or less 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_dtt768.h

    r9656 r9670  
    3737  bool  set_gain(float gain); 
    3838 
    39   float freq_min(); 
    40   float freq_max(); 
    41   struct freq_result_t set_freq(float target_freq); 
     39  double freq_min(); 
     40  double freq_max(); 
     41  struct freq_result_t set_freq(double target_freq); 
    4242   
    4343  bool is_quadrature(); 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_flexrf.cc

    r9656 r9670  
    164164 
    165165bool 
    166 flexrf_base::_compute_regs(float freq, int &retR, int &retcontrol, 
    167                            int &retN, float &retfreq) 
     166flexrf_base::_compute_regs(double freq, int &retR, int &retcontrol, 
     167                           int &retN, double &retfreq) 
    168168{ 
    169169  /* 
     
    194194} 
    195195 
    196 float 
     196double 
    197197flexrf_base::_refclk_freq() 
    198198{ 
     
    201201 
    202202struct freq_result_t 
    203 flexrf_base::set_freq(float freq) 
     203flexrf_base::set_freq(double freq) 
    204204{ 
    205205  /* 
     
    219219   
    220220  int R, control, N; 
    221   float actual_freq; 
     221  double actual_freq; 
    222222  _compute_regs(freq, R, control, N, actual_freq); 
    223223 
     
    288288 
    289289void 
    290 flexrf_base::set_lo_offset(float offset) 
     290flexrf_base::set_lo_offset(double offset) 
    291291{ 
    292292  /* 
     
    298298} 
    299299 
    300 float  
     300double 
    301301flexrf_base::lo_offset() 
    302302{ 
     
    582582 
    583583bool 
    584 _AD4360_common::_compute_regs(float refclk_freq, float freq, int &retR,  
    585                               int &retcontrol, int &retN, float &retfreq) 
     584_AD4360_common::_compute_regs(double refclk_freq, double freq, int &retR,  
     585                              int &retcontrol, int &retN, double &retfreq) 
    586586{ 
    587587  /* 
     
    596596  //  Band-specific N-Register Values 
    597597  //float phdet_freq = _refclk_freq()/d_R_DIV; 
    598   float phdet_freq = refclk_freq/d_R_DIV; 
    599   float desired_n = round(freq*d_freq_mult/phdet_freq); 
    600   float actual_freq = desired_n * phdet_freq; 
     598  double phdet_freq = refclk_freq/d_R_DIV; 
     599  double desired_n = round(freq*d_freq_mult/phdet_freq); 
     600  double actual_freq = desired_n * phdet_freq; 
    601601  int B = floor(desired_n/_prescaler()); 
    602602  int A = desired_n - _prescaler()*B; 
     
    661661} 
    662662 
    663 float 
     663double 
    664664_AD4360_common::freq_min() 
    665665{ 
     
    667667} 
    668668 
    669 float 
     669double 
    670670_AD4360_common::freq_max() 
    671671{ 
     
    693693} 
    694694 
    695 float 
     695double 
    696696_2400_common::freq_min() 
    697697{ 
     
    699699} 
    700700 
    701 float 
     701double 
    702702_2400_common::freq_max() 
    703703{ 
     
    725725} 
    726726 
    727 float  
     727double  
    728728_1200_common::freq_min() 
    729729{ 
     
    731731} 
    732732 
    733 float  
     733double  
    734734_1200_common::freq_max() 
    735735{ 
     
    757757} 
    758758 
    759 float  
     759double  
    760760_1800_common::freq_min() 
    761761{ 
     
    763763} 
    764764 
    765 float  
     765double  
    766766_1800_common::freq_max() 
    767767{ 
     
    789789} 
    790790 
    791 float 
     791double 
    792792_900_common::freq_min() 
    793793{ 
     
    795795} 
    796796 
    797 float 
     797double 
    798798_900_common::freq_max() 
    799799{ 
     
    827827} 
    828828 
    829 float  
     829double  
    830830_400_common::freq_min() 
    831831{ 
     
    833833 
    834834 
    835 float  
     835double  
    836836_400_common::freq_max() 
    837837{ 
     
    851851} 
    852852 
    853 float 
     853double 
    854854db_flexrf_2400_tx::freq_min() 
    855855{ 
     
    857857} 
    858858 
    859 float 
     859double 
    860860db_flexrf_2400_tx::freq_max() 
    861861{ 
     
    864864 
    865865bool 
    866 db_flexrf_2400_tx::_compute_regs(float freq, int &retR, int &retcontrol, 
    867                                  int &retN, float &retfreq) 
     866db_flexrf_2400_tx::_compute_regs(double freq, int &retR, int &retcontrol, 
     867                                 int &retN, double &retfreq) 
    868868{ 
    869869  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    908908} 
    909909 
    910 float 
     910double 
    911911db_flexrf_2400_rx::freq_min() 
    912912{ 
     
    914914} 
    915915 
    916 float 
     916double 
    917917db_flexrf_2400_rx::freq_max() 
    918918{ 
     
    921921 
    922922bool 
    923 db_flexrf_2400_rx::_compute_regs(float freq, int &retR, int &retcontrol, 
    924                                  int &retN, float &retfreq) 
     923db_flexrf_2400_rx::_compute_regs(double freq, int &retR, int &retcontrol, 
     924                                 int &retN, double &retfreq) 
    925925{ 
    926926  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    941941} 
    942942 
    943 float 
     943double 
    944944db_flexrf_1200_tx::freq_min() 
    945945{ 
     
    947947} 
    948948 
    949 float 
     949double 
    950950db_flexrf_1200_tx::freq_max() 
    951951{ 
     
    954954 
    955955bool 
    956 db_flexrf_1200_tx::_compute_regs(float freq, int &retR, int &retcontrol, 
    957                                  int &retN, float &retfreq) 
     956db_flexrf_1200_tx::_compute_regs(double freq, int &retR, int &retcontrol, 
     957                                 int &retN, double &retfreq) 
    958958{ 
    959959  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    998998} 
    999999 
    1000 float 
     1000double 
    10011001db_flexrf_1200_rx::freq_min() 
    10021002{ 
     
    10041004} 
    10051005 
    1006 float 
     1006double 
    10071007db_flexrf_1200_rx::freq_max() 
    10081008{ 
     
    10111011 
    10121012bool 
    1013 db_flexrf_1200_rx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1014                                  int &retN, float &retfreq) 
     1013db_flexrf_1200_rx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1014                                 int &retN, double &retfreq) 
    10151015{ 
    10161016  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    10321032} 
    10331033 
    1034 float 
     1034double 
    10351035db_flexrf_1800_tx::freq_min() 
    10361036{ 
     
    10381038} 
    10391039 
    1040 float 
     1040double 
    10411041db_flexrf_1800_tx::freq_max() 
    10421042{ 
     
    10451045 
    10461046bool 
    1047 db_flexrf_1800_tx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1048                                  int &retN, float &retfreq) 
     1047db_flexrf_1800_tx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1048                                 int &retN, double &retfreq) 
    10491049{ 
    10501050  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    10891089} 
    10901090 
    1091 float 
     1091double 
    10921092db_flexrf_1800_rx::freq_min() 
    10931093{ 
     
    10951095} 
    10961096 
    1097 float 
     1097double 
    10981098db_flexrf_1800_rx::freq_max() 
    10991099{ 
     
    11021102 
    11031103bool 
    1104 db_flexrf_1800_rx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1105                                  int &retN, float &retfreq) 
     1104db_flexrf_1800_rx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1105                                 int &retN, double &retfreq) 
    11061106{ 
    11071107  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    11231123} 
    11241124 
    1125 float 
     1125double 
    11261126db_flexrf_900_tx::freq_min() 
    11271127{ 
     
    11291129} 
    11301130 
    1131 float 
     1131double 
    11321132db_flexrf_900_tx::freq_max() 
    11331133{ 
     
    11361136 
    11371137bool 
    1138 db_flexrf_900_tx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1139                                 int &retN, float &retfreq) 
     1138db_flexrf_900_tx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1139                                int &retN, double &retfreq) 
    11401140{ 
    11411141  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    11781178} 
    11791179 
    1180 float 
     1180double 
    11811181db_flexrf_900_rx::freq_min() 
    11821182{ 
     
    11841184} 
    11851185 
    1186 float 
     1186double 
    11871187db_flexrf_900_rx::freq_max() 
    11881188{ 
     
    11911191 
    11921192bool 
    1193 db_flexrf_900_rx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1194                                 int &retN, float &retfreq) 
     1193db_flexrf_900_rx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1194                                int &retN, double &retfreq) 
    11951195{ 
    11961196  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    12111211} 
    12121212 
    1213 float 
     1213double 
    12141214db_flexrf_400_tx::freq_min() 
    12151215{ 
     
    12171217} 
    12181218 
    1219 float 
     1219double 
    12201220db_flexrf_400_tx::freq_max() 
    12211221{ 
     
    12241224 
    12251225bool 
    1226 db_flexrf_400_tx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1227                                 int &retN, float &retfreq) 
     1226db_flexrf_400_tx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1227                                int &retN, double &retfreq) 
    12281228{ 
    12291229  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
     
    12691269} 
    12701270 
    1271 float 
     1271double 
    12721272db_flexrf_400_rx::freq_min() 
    12731273{ 
     
    12751275} 
    12761276 
    1277 float 
     1277double 
    12781278db_flexrf_400_rx::freq_max() 
    12791279{ 
     
    12821282 
    12831283bool 
    1284 db_flexrf_400_rx::_compute_regs(float freq, int &retR, int &retcontrol, 
    1285                                 int &retN, float &retfreq) 
     1284db_flexrf_400_rx::_compute_regs(double freq, int &retR, int &retcontrol, 
     1285                                int &retN, double &retfreq) 
    12861286{ 
    12871287  return d_common->_compute_regs(_refclk_freq(), freq, retR, 
  • gnuradio/branches/features/cppdb/usrp/host/lib/legacy/db_flexrf.h

    r9656 r9670  
    3737  ~flexrf_base(); 
    3838 
    39   struct freq_result_t set_freq(float freq); 
     39  struct freq_result_t set_freq(double freq); 
    4040  float gain_min(); 
    4141  float gain_max(); 
     
    4343  bool  set_gain(float gain); 
    4444  bool  is_quadrature(); 
    45   float lo_offset(); 
    46   void  set_lo_offset(float offset); 
     45  double lo_offset(); 
     46  void  set_lo_offset(double offset); 
    4747 
    4848protected: 
     
    5454  bool _lock_detect(); 
    5555 
    56   virtual bool _compute_regs(float freq, int &retR, int &retcontrol,  
    57                              int &retN, float &retfreq); 
     56  virtual bool _compute_regs(double freq, int &retR, int &retcontrol,  
     57                             int &retN, double &retfreq); 
    5858  int  _compute_control_reg(); 
    5959  int _refclk_divisor(); 
    60   float _refclk_freq(); 
     60  double _refclk_freq(); 
    6161 
    6262  bool _set_pga(float pga_gain); 
     
    6565  int power_off() { return 0; } 
    6666 
    67   float d_lo_offset; 
     67  double d_lo_offset; 
    6868  bool d_first; 
    6969  int  d_spi_format; 
     
    118118  virtual ~_AD4360_common(); 
    119119 
    120   virtual float freq_min(); 
    121   virtual float freq_max(); 
    122  
    123   bool _compute_regs(float refclk_freq, float freq, int &retR,  
    124                      int &retcontrol, int &retN, float &retfreq); 
     120  virtual double freq_min(); 
     121  virtual double freq_max(); 
     122 
     123  bool _compute_regs(double refclk_freq, double freq, int &retR,  
     124                     int &retcontrol, int &retN, double &retfreq); 
    125125  int _compute_control_reg(); 
    126126  virtual int _refclk_divisor(); 
     
    149149  ~_2400_common() {} 
    150150  
    151   float freq_min(); 
    152   float freq_max(); 
     151  double freq_min(); 
     152  double freq_max(); 
    153153}; 
    154154 
     
    161161  ~_1200_common() {} 
    162162 
    163   float freq_min(); 
    164   float freq_max(); 
     163  double freq_min(); 
     164  double freq_max(); 
    165165}; 
    166166 
     
    173173  ~_1800_common() {} 
    174174 
    175   float freq_min(); 
    176   float freq_max(); 
     175  double freq_min(); 
     176  double freq_max(); 
    177177}; 
    178178 
     
    185185  ~_900_common() {} 
    186186   
    187   float freq_min(); 
    188   float freq_max(); 
     187  double freq_min(); 
     188  double freq_max(); 
    189189}; 
    190190 
     
    197197  ~_400_common() {} 
    198198 
    199   float freq_min(); 
    200   float freq_max(); 
     199  double freq_min(); 
     200  double freq_max(); 
    201201}; 
    202202 
     
    211211 
    212212  // Wrapper calls to d_common functions 
    213   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    214                      int &retN, float &retfreq); 
    215   float freq_min(); 
    216   float freq_max(); 
     213  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     214                     int &retN, double &retfreq); 
     215  double freq_min(); 
     216  double freq_max(); 
    217217}; 
    218218 
     
    228228  bool i_and_q_swapped(); 
    229229 
    230   float freq_min(); 
    231   float freq_max(); 
    232   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    233                      int &retN, float &retfreq); 
     230  double freq_min(); 
     231  double freq_max(); 
     232  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     233                     int &retN, double &retfreq); 
    234234}; 
    235235 
     
    243243 
    244244  // Wrapper calls to d_common functions 
    245   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    246                      int &retN, float &retfreq); 
    247   float freq_min(); 
    248   float freq_max(); 
     245  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     246                     int &retN, double &retfreq); 
     247  double freq_min(); 
     248  double freq_max(); 
    249249}; 
    250250 
     
    260260  bool i_and_q_swapped(); 
    261261 
    262   float freq_min(); 
    263   float freq_max(); 
    264   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    265                      int &retN, float &retfreq); 
     262  double freq_min(); 
     263  double freq_max(); 
     264  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     265                     int &retN, double &retfreq); 
    266266}; 
    267267 
     
    275275 
    276276  // Wrapper calls to d_common functions 
    277   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    278                      int &retN, float &retfreq); 
    279   float freq_min(); 
    280   float freq_max(); 
     277  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     278                     int &retN, double &retfreq); 
     279  double freq_min(); 
     280  double freq_max(); 
    281281}; 
    282282 
     
    292292  bool i_and_q_swapped(); 
    293293 
    294   float freq_min(); 
    295   float freq_max(); 
    296   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    297                      int &retN, float &retfreq); 
     294  double freq_min(); 
     295  double freq_max(); 
     296  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     297                     int &retN, double &retfreq); 
    298298}; 
    299299 
     
    307307 
    308308  // Wrapper calls to d_common functions 
    309   bool _compute_regs(float freq, int &retR, int &retcontrol, 
    310                      int &retN, float &retfreq); 
    311   float freq_min(); 
    312   float freq_max(); 
     309  bool _compute_regs(double freq, int &retR, int &retcontrol, 
     310                     int &retN, double &retfreq); 
     311  double freq_min(); 
     312  double freq_max(); 
    313313}; 
    314314