diff options
23 files changed, 924 insertions, 919 deletions
diff --git a/host/include/uhd/types/byte_vector.hpp b/host/include/uhd/types/byte_vector.hpp index d380e3531..9cf0be88c 100644 --- a/host/include/uhd/types/byte_vector.hpp +++ b/host/include/uhd/types/byte_vector.hpp @@ -8,15 +8,12 @@  #ifndef INCLUDED_UHD_TYPES_BYTE_VECTOR_HPP  #define INCLUDED_UHD_TYPES_BYTE_VECTOR_HPP +#include <uhd/config.hpp> +#include <boost/range.hpp>  #include <algorithm>  #include <string>  #include <vector> -#include <boost/assign.hpp> -#include <stdint.h> - -#include <uhd/config.hpp> -  namespace uhd{      //! Byte vector used for I2C data passing and EEPROM parsing. diff --git a/host/lib/rfnoc/blockdef_xml_impl.cpp b/host/lib/rfnoc/blockdef_xml_impl.cpp index 50faf6905..26622d649 100644 --- a/host/lib/rfnoc/blockdef_xml_impl.cpp +++ b/host/lib/rfnoc/blockdef_xml_impl.cpp @@ -10,7 +10,6 @@  #include <uhd/rfnoc/blockdef.hpp>  #include <uhd/utils/log.hpp>  #include <uhd/utils/paths.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/format.hpp>  #include <boost/lexical_cast.hpp>  #include <boost/algorithm/string.hpp> @@ -102,13 +101,13 @@ const device_addr_t blockdef::arg_t::ARG_ARGS(          "port=0,"  ); -const std::set<std::string> blockdef::arg_t::VALID_TYPES = boost::assign::list_of +const std::set<std::string> blockdef::arg_t::VALID_TYPES = {      // List all tags/args a <type> can have here: -            ("string") -            ("int") -            ("int_vector") -            ("double") -; +    "string", +    "int", +    "int_vector", +    "double" +};  blockdef::arg_t::arg_t()  { diff --git a/host/lib/rfnoc/legacy_compat.cpp b/host/lib/rfnoc/legacy_compat.cpp index 0ccc5d19d..e10d40511 100644 --- a/host/lib/rfnoc/legacy_compat.cpp +++ b/host/lib/rfnoc/legacy_compat.cpp @@ -20,7 +20,6 @@  #include <uhd/usrp/multi_usrp.hpp>  #include <uhdlib/rfnoc/legacy_compat.hpp>  #include <boost/make_shared.hpp> -#include <boost/assign.hpp>  #define UHD_LEGACY_LOG() UHD_LOGGER_TRACE("RFNOC") @@ -359,7 +358,7 @@ public:                  }              }          } else { -            std::set<size_t> chans_to_change = boost::assign::list_of(chan); +            std::set<size_t> chans_to_change{chan};              if (_rx_stream_cache.count(chan)) {                  uhd::rx_streamer::sptr str_ptr = _rx_stream_cache[chan].lock();                  if (str_ptr) { @@ -402,7 +401,7 @@ public:                  }              }          } else { -            std::set<size_t> chans_to_change = boost::assign::list_of(chan); +            std::set<size_t> chans_to_change{chan};              if (_tx_stream_cache.count(chan)) {                  uhd::tx_streamer::sptr str_ptr = _tx_stream_cache[chan].lock();                  if (str_ptr) { diff --git a/host/lib/rfnoc/nocscript/expression.cpp b/host/lib/rfnoc/nocscript/expression.cpp index 41b9c5403..1a7f3ee94 100644 --- a/host/lib/rfnoc/nocscript/expression.cpp +++ b/host/lib/rfnoc/nocscript/expression.cpp @@ -9,18 +9,17 @@  #include "function_table.hpp"  #include <uhd/utils/cast.hpp>  #include <boost/format.hpp> -#include <boost/assign.hpp>  #include <boost/algorithm/string.hpp>  using namespace uhd::rfnoc::nocscript; -std::map<expression::type_t, std::string> expression::type_repr = boost::assign::map_list_of -    (TYPE_INT, "INT") -    (TYPE_DOUBLE, "DOUBLE") -    (TYPE_STRING, "STRING") -    (TYPE_BOOL, "BOOL") -    (TYPE_INT_VECTOR, "INT_VECTOR") -; +std::map<expression::type_t, std::string> expression::type_repr{ +    {TYPE_INT, "INT"}, +    {TYPE_DOUBLE, "DOUBLE"}, +    {TYPE_STRING, "STRING"}, +    {TYPE_BOOL, "BOOL"}, +    {TYPE_INT_VECTOR, "INT_VECTOR"} +};  /********************************************************************   * Literal expressions (constants) diff --git a/host/lib/types/serial.cpp b/host/lib/types/serial.cpp index 24da51e7f..afa99d051 100644 --- a/host/lib/types/serial.cpp +++ b/host/lib/types/serial.cpp @@ -6,7 +6,7 @@  //  #include <uhd/types/serial.hpp> -#include <boost/assign/list_of.hpp> +#include <uhdlib/utils/narrow.hpp>  #include <chrono>  #include <thread> @@ -42,7 +42,10 @@ void i2c_iface::write_eeprom(  ){      for (size_t i = 0; i < bytes.size(); i++){          //write a byte at a time, its easy that way -        byte_vector_t cmd = boost::assign::list_of(offset+i)(bytes[i]); +        byte_vector_t cmd = { +            narrow_cast<uint8_t>(offset+i), +            narrow_cast<uint8_t>(bytes[i]) +        };          this->write_i2c(addr, cmd);          std::this_thread::sleep_for(std::chrono::milliseconds(10)); //worst case write      } @@ -89,7 +92,10 @@ struct eeprom16_impl : i2c_iface          uint16_t offset,          size_t num_bytes      ){ -        byte_vector_t cmd = boost::assign::list_of(offset >> 8)(offset & 0xff); +        byte_vector_t cmd = { +            narrow_cast<uint8_t>(offset >> 8), +            narrow_cast<uint8_t>(offset & 0xff) +        };          this->write_i2c(addr, cmd);          return this->read_i2c(addr, num_bytes);      } @@ -103,7 +109,11 @@ struct eeprom16_impl : i2c_iface          {              //write a byte at a time, its easy that way              uint16_t offset_i = offset+i; -            byte_vector_t cmd = boost::assign::list_of(offset_i >> 8)(offset_i & 0xff)(bytes[i]); +            byte_vector_t cmd{ +                narrow_cast<uint8_t>(offset_i >> 8), +                narrow_cast<uint8_t>(offset_i & 0xff), +                bytes[i] +            };              this->write_i2c(addr, cmd);              std::this_thread::sleep_for(std::chrono::milliseconds(10)); //worst case write          } diff --git a/host/lib/usrp/b100/clock_ctrl.cpp b/host/lib/usrp/b100/clock_ctrl.cpp index c06b44c49..58e57d7b5 100644 --- a/host/lib/usrp/b100/clock_ctrl.cpp +++ b/host/lib/usrp/b100/clock_ctrl.cpp @@ -14,7 +14,6 @@  #include <uhd/utils/safe_call.hpp>  #include <stdint.h>  #include "b100_regs.hpp" //spi slave constants -#include <boost/assign/list_of.hpp>  #include <boost/format.hpp>  #include <boost/math/common_factor_rt.hpp> //gcd  #include <algorithm> @@ -516,11 +515,14 @@ private:      void send_all_regs(void){          //setup a list of register ranges to write          typedef std::pair<uint16_t, uint16_t> range_t; -        static const std::vector<range_t> ranges = boost::assign::list_of -            (range_t(0x000, 0x000)) (range_t(0x010, 0x01F)) -            (range_t(0x0F0, 0x0FD)) (range_t(0x190, 0x19B)) -            (range_t(0x1E0, 0x1E1)) (range_t(0x230, 0x230)) -        ; +        static const std::vector<range_t> ranges{ +            range_t(0x000, 0x000), +            range_t(0x010, 0x01F), +            range_t(0x0F0, 0x0FD), +            range_t(0x190, 0x19B), +            range_t(0x1E0, 0x1E1), +            range_t(0x230, 0x230) +        };          //write initial register values and latch/update          for(const range_t &range:  ranges){ diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp index fe3b21aee..56b05a9ae 100644 --- a/host/lib/usrp/b200/b200_impl.cpp +++ b/host/lib/usrp/b200/b200_impl.cpp @@ -17,7 +17,6 @@  #include <uhd/utils/safe_call.hpp>  #include <uhd/usrp/dboard_eeprom.hpp>  #include <boost/format.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/filesystem.hpp>  #include <boost/thread/thread.hpp>  #include <boost/lexical_cast.hpp> @@ -643,18 +642,20 @@ b200_impl::b200_impl(const uhd::device_addr_t& device_addr, usb_device_handle::s      }      //setup time source props -    static const std::vector<std::string> time_sources = (_gpsdo_capable) ? -                                boost::assign::list_of("none")("internal")("external")("gpsdo") : -                                boost::assign::list_of("none")("internal")("external") ; +    const std::vector<std::string> time_sources = +        (_gpsdo_capable) ? +        std::vector<std::string>{"none", "internal", "external", "gpsdo"} : +        std::vector<std::string>{"none", "internal", "external"};      _tree->create<std::vector<std::string> >(mb_path / "time_source" / "options")          .set(time_sources);      _tree->create<std::string>(mb_path / "time_source" / "value")          .set_coercer(boost::bind(&check_option_valid, "time source", time_sources, _1))          .add_coerced_subscriber(boost::bind(&b200_impl::update_time_source, this, _1));      //setup reference source props -    static const std::vector<std::string> clock_sources = (_gpsdo_capable) ? -                                boost::assign::list_of("internal")("external")("gpsdo") : -                                boost::assign::list_of("internal")("external") ; +    const std::vector<std::string> clock_sources = +        (_gpsdo_capable) ? +        std::vector<std::string>{"internal", "external", "gpsdo"} : +        std::vector<std::string>{"internal", "external"};      _tree->create<std::vector<std::string> >(mb_path / "clock_source" / "options")          .set(clock_sources);      _tree->create<std::string>(mb_path / "clock_source" / "value") @@ -847,8 +848,7 @@ void b200_impl::setup_radio(const size_t dspno)      ////////////////////////////////////////////////////////////////////      // create RF frontend interfacing      //////////////////////////////////////////////////////////////////// -    static const std::vector<direction_t> dirs = boost::assign::list_of(RX_DIRECTION)(TX_DIRECTION); -    for(direction_t dir:  dirs) { +    for (direction_t dir : std::vector<direction_t>{RX_DIRECTION, TX_DIRECTION}) {          const std::string x = (dir == RX_DIRECTION) ? "rx" : "tx";          const std::string key = std::string(((dir == RX_DIRECTION) ? "RX" : "TX")) + std::string(((dspno == _fe1) ? "1" : "2"));          const fs_path rf_fe_path @@ -868,7 +868,7 @@ void b200_impl::setup_radio(const size_t dspno)          ;          if (dir == RX_DIRECTION)          { -            static const std::vector<std::string> ants = boost::assign::list_of("TX/RX")("RX2"); +            static const std::vector<std::string> ants{"TX/RX", "RX2"};              _tree->create<std::vector<std::string> >(rf_fe_path / "antenna" / "options").set(ants);              _tree->create<std::string>(rf_fe_path / "antenna" / "value")                  .add_coerced_subscriber(boost::bind(&b200_impl::update_antenna_sel, this, dspno, _1)) diff --git a/host/lib/usrp/dboard/db_twinrx.cpp b/host/lib/usrp/dboard/db_twinrx.cpp index 0d14c7632..523d68185 100644 --- a/host/lib/usrp/dboard/db_twinrx.cpp +++ b/host/lib/usrp/dboard/db_twinrx.cpp @@ -19,7 +19,6 @@  #include <uhd/utils/log.hpp>  #include <uhd/utils/static.hpp>  #include "dboard_ctor_args.hpp" -#include <boost/assign/list_of.hpp>  #include <boost/make_shared.hpp>  #include <boost/thread.hpp>  #include <boost/thread/mutex.hpp> @@ -100,8 +99,8 @@ public:          expert_factory::add_dual_prop_node<double>(_expert, get_rx_subtree(),              "los/LO2/freq/value", prepend_ch("los/LO2/freq/desired", _ch_name), prepend_ch("los/LO2/freq/coerced", _ch_name),              0.0, AUTO_RESOLVE_ON_READ_WRITE); -        get_rx_subtree()->create<std::vector<std::string> >("los/all/source/options") -            .set(boost::assign::list_of("internal")("external")("companion")("disabled")("reimport")); +        get_rx_subtree()->create<std::vector<std::string>>("los/all/source/options") +            .set({"internal", "external", "companion", "disabled", "reimport"});          expert_factory::add_prop_node<std::string>(_expert, get_rx_subtree(),              "los/all/source/value", prepend_ch("los/all/source", _ch_name),              "internal", AUTO_RESOLVE_ON_WRITE); @@ -116,14 +115,14 @@ public:              "gains/all/value", prepend_ch("gain", _ch_name),              0.0, AUTO_RESOLVE_ON_WRITE);          get_rx_subtree()->create<std::vector<std::string> >("gains/all/profile/options") -            .set(boost::assign::list_of("low-noise")("low-distortion")("default")); +            .set({"low-noise", "low-distortion", "default"});          expert_factory::add_prop_node<std::string>(_expert, get_rx_subtree(),              "gains/all/profile/value", prepend_ch("gain_profile", _ch_name),              "default", AUTO_RESOLVE_ON_WRITE);          //Antenna Specific          get_rx_subtree()->create<std::vector<std::string> >("antenna/options") -            .set(boost::assign::list_of("RX1")("RX2")); +            .set({"RX1", "RX2"});          expert_factory::add_prop_node<std::string>(_expert, get_rx_subtree(),              "antenna/value", prepend_ch("antenna", _ch_name),              (_ch_name == "0" ? "RX1" : "RX2"), AUTO_RESOLVE_ON_WRITE); diff --git a/host/lib/usrp/dboard/db_ubx.cpp b/host/lib/usrp/dboard/db_ubx.cpp index 6c6862fb7..c65b5f470 100644 --- a/host/lib/usrp/dboard/db_ubx.cpp +++ b/host/lib/usrp/dboard/db_ubx.cpp @@ -20,7 +20,6 @@  #include <uhd/utils/safe_call.hpp>  #include <uhdlib/usrp/common/max287x.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/shared_ptr.hpp>  #include <boost/math/special_functions/round.hpp>  #include <boost/algorithm/string.hpp> @@ -156,12 +155,12 @@ static const dboard_id_t UBX_TDD_160MHZ_RX_ID(0x0203);  static const freq_range_t ubx_freq_range(10e6, 6.0e9);  static const gain_range_t ubx_tx_gain_range(0, 31.5, double(0.5));  static const gain_range_t ubx_rx_gain_range(0, 31.5, double(0.5)); -static const std::vector<std::string> ubx_pgas = boost::assign::list_of("PGA-TX")("PGA-RX"); -static const std::vector<std::string> ubx_plls = boost::assign::list_of("TXLO")("RXLO"); -static const std::vector<std::string> ubx_tx_antennas = boost::assign::list_of("TX/RX")("CAL"); -static const std::vector<std::string> ubx_rx_antennas = boost::assign::list_of("TX/RX")("RX2")("CAL"); -static const std::vector<std::string> ubx_power_modes = boost::assign::list_of("performance")("powersave"); -static const std::vector<std::string> ubx_xcvr_modes = boost::assign::list_of("FDX")("TX")("TX/RX")("RX"); +static const std::vector<std::string> ubx_pgas{"PGA-TX", "PGA-RX"}; +static const std::vector<std::string> ubx_plls{"TXLO", "RXLO"}; +static const std::vector<std::string> ubx_tx_antennas{"TX/RX", "CAL"}; +static const std::vector<std::string> ubx_rx_antennas{"TX/RX", "RX2", "CAL"}; +static const std::vector<std::string> ubx_power_modes{"performance", "powersave"}; +static const std::vector<std::string> ubx_xcvr_modes{"FDX", "TX", "TX/RX", "RX"};  static const ubx_gpio_field_info_t ubx_proto_gpio_info[] = {      //Field         Unit                  Offset Mask      Width    Direction                   ATR    IDLE,TX,RX,FDX @@ -397,7 +396,7 @@ public:              _txlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));              _rxlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));              _rxlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1)); -            std::vector<max287x_iface::sptr> los = boost::assign::list_of(_txlo1)(_txlo2)(_rxlo1)(_rxlo2); +            std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};              for(max287x_iface::sptr lo:  los)              {                  lo->set_auto_retune(false); @@ -411,7 +410,7 @@ public:              _txlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));              _rxlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));              _rxlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1)); -            std::vector<max287x_iface::sptr> los = boost::assign::list_of(_txlo1)(_txlo2)(_rxlo1)(_rxlo2); +            std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};              for(max287x_iface::sptr lo:  los)              {                  lo->set_auto_retune(false); diff --git a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_init.cpp b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_init.cpp index 4023a06c8..4f47427b7 100644 --- a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_init.cpp +++ b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_init.cpp @@ -369,8 +369,8 @@ void magnesium_radio_ctrl_impl::_init_frontend_subtree(          })      ; -    subtree->create<std::vector<std::string> >(tx_fe_path / "gains/all/profile/options") -            .set(boost::assign::list_of("manual")("default")); +    subtree->create<std::vector<std::string>>(tx_fe_path / "gains/all/profile/options") +        .set({"manual", "default"});      subtree->create<std::string>(tx_fe_path / "gains/all/profile/value")          .set_coercer([this](const std::string& profile){ diff --git a/host/lib/usrp/dboard/twinrx/twinrx_gain_tables.cpp b/host/lib/usrp/dboard/twinrx/twinrx_gain_tables.cpp index bdd3295d5..323869c0f 100644 --- a/host/lib/usrp/dboard/twinrx/twinrx_gain_tables.cpp +++ b/host/lib/usrp/dboard/twinrx/twinrx_gain_tables.cpp @@ -7,793 +7,792 @@  #include "twinrx_gain_tables.hpp"  #include <uhd/exception.hpp> -#include <boost/assign/list_of.hpp>  using namespace uhd::usrp::dboard::twinrx; -static const std::vector<twinrx_gain_config_t> HIGHBAND1_TABLE = boost::assign::list_of -        //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      4,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      5,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      6,  -28.3,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      7,  -27.3,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      8,  -26.3,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      9,  -25.3,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(     10,  -24.3,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(     11,  -23.3,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(     12,  -22.3,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(     13,  -21.3,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     14,  -20.3,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     15,  -19.3,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     16,  -18.3,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     17,  -17.3,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     18,  -16.3,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     19,  -15.3,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     20,  -14.3,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     21,  -13.3,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     22,  -12.3,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     23,  -11.3,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     24,  -10.3,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     25,   -9.3,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     26,   -8.3,   30,   12, false, false ) ) -        ( twinrx_gain_config_t(     27,   -7.3,   30,   11, false, false ) ) -        ( twinrx_gain_config_t(     28,   -6.3,   29,   11, false, false ) ) -        ( twinrx_gain_config_t(     29,   -5.3,   28,   11, false, false ) ) -        ( twinrx_gain_config_t(     30,   -4.3,   27,   11, false, false ) ) -        ( twinrx_gain_config_t(     31,   -3.3,   27,   10, false, false ) ) -        ( twinrx_gain_config_t(     32,   -2.3,   26,   10, false, false ) ) -        ( twinrx_gain_config_t(     33,   -1.3,   25,   10, false, false ) ) -        ( twinrx_gain_config_t(     34,   -0.3,   24,   10, false, false ) ) -        ( twinrx_gain_config_t(     35,    0.7,   23,   10, false, false ) ) -        ( twinrx_gain_config_t(     36,    1.7,   22,   10, false, false ) ) -        ( twinrx_gain_config_t(     37,    2.7,   21,   10, false, false ) ) -        ( twinrx_gain_config_t(     38,    3.7,   21,    9, false, false ) ) -        ( twinrx_gain_config_t(     39,    4.7,   20,    9, false, false ) ) -        ( twinrx_gain_config_t(     40,    5.7,   19,    9, false, false ) ) -        ( twinrx_gain_config_t(     41,    6.7,   18,    9, false, false ) ) -        ( twinrx_gain_config_t(     42,    7.7,   17,    9, false, false ) ) -        ( twinrx_gain_config_t(     43,    8.7,   16,    9, false, false ) ) -        ( twinrx_gain_config_t(     44,    9.7,   15,    9, false, false ) ) -        ( twinrx_gain_config_t(     45,   10.7,   14,    9, false, false ) ) -        ( twinrx_gain_config_t(     46,   11.7,   13,    9, false, false ) ) -        ( twinrx_gain_config_t(     47,   12.7,   12,    9, false, false ) ) -        ( twinrx_gain_config_t(     48,   13.7,   11,    9, false, false ) ) -        ( twinrx_gain_config_t(     49,   14.7,   10,    9, false, false ) ) -        ( twinrx_gain_config_t(     50,   15.7,    9,    9, false, false ) ) -        ( twinrx_gain_config_t(     51,   16.7,    8,    9, false, false ) ) -        ( twinrx_gain_config_t(     52,   17.7,    7,    9, false, false ) ) -        ( twinrx_gain_config_t(     53,   18.7,    6,    9, false, false ) ) -        ( twinrx_gain_config_t(     54,   19.7,    5,    9, false, false ) ) -        ( twinrx_gain_config_t(     55,   20.7,    4,    9, false, false ) ) -        ( twinrx_gain_config_t(     56,   21.7,    3,    9, false, false ) ) -        ( twinrx_gain_config_t(     57,   22.7,    2,    9, false, false ) ) -        ( twinrx_gain_config_t(     58,   23.7,    1,    9, false, false ) ) -        ( twinrx_gain_config_t(     59,   24.7,    0,    9, false, false ) ) -        ( twinrx_gain_config_t(     60,   25.7,    0,    8, false, false ) ) -        ( twinrx_gain_config_t(     61,   26.7,    0,    7, false, false ) ) -        ( twinrx_gain_config_t(     62,   27.7,    0,    6, false, false ) ) -        ( twinrx_gain_config_t(     63,   28.7,    0,    5, false, false ) ) -        ( twinrx_gain_config_t(     64,   29.7,    0,    4, false, false ) ) -        ( twinrx_gain_config_t(     65,   30.7,    0,    3, false, false ) ) -        ( twinrx_gain_config_t(     66,   31.7,    0,    2, false, false ) ) -        ( twinrx_gain_config_t(     67,   32.7,    0,    1, false, false ) ) -        ( twinrx_gain_config_t(     68,   33.7,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     69,   33.9,    3,    9,  true, false ) ) -        ( twinrx_gain_config_t(     70,   34.9,    2,    9,  true, false ) ) -        ( twinrx_gain_config_t(     71,   35.9,    1,    9,  true, false ) ) -        ( twinrx_gain_config_t(     72,   36.9,    0,    9,  true, false ) ) -        ( twinrx_gain_config_t(     73,   37.9,    0,    8,  true, false ) ) -        ( twinrx_gain_config_t(     74,   38.9,    0,    7,  true, false ) ) -        ( twinrx_gain_config_t(     75,   39.9,    0,    6,  true, false ) ) -        ( twinrx_gain_config_t(     76,   40.9,    0,    5,  true, false ) ) -        ( twinrx_gain_config_t(     77,   41.9,    0,    4,  true, false ) ) -        ( twinrx_gain_config_t(     78,   42.9,    0,    3,  true, false ) ) -        ( twinrx_gain_config_t(     79,   43.9,    0,    2,  true, false ) ) -        ( twinrx_gain_config_t(     80,   44.9,    0,    1,  true, false ) ) -        ( twinrx_gain_config_t(     81,   45.9,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     82,   47.3,    1,   10,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   48.3,    0,   10,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   49.3,    0,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   50.3,    0,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   51.3,    0,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   52.3,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   53.3,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   54.3,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   55.3,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   56.3,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   57.3,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   58.3,    0,    0,  true,  true ) ) -; +static const std::vector<twinrx_gain_config_t> HIGHBAND1_TABLE{ +        //                     Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 +        twinrx_gain_config_t(      0,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      4,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      5,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      6,  -28.3,   31,   31, false, false ), +        twinrx_gain_config_t(      7,  -27.3,   31,   30, false, false ), +        twinrx_gain_config_t(      8,  -26.3,   31,   29, false, false ), +        twinrx_gain_config_t(      9,  -25.3,   31,   28, false, false ), +        twinrx_gain_config_t(     10,  -24.3,   31,   27, false, false ), +        twinrx_gain_config_t(     11,  -23.3,   31,   26, false, false ), +        twinrx_gain_config_t(     12,  -22.3,   31,   25, false, false ), +        twinrx_gain_config_t(     13,  -21.3,   31,   24, false, false ), +        twinrx_gain_config_t(     14,  -20.3,   31,   23, false, false ), +        twinrx_gain_config_t(     15,  -19.3,   31,   22, false, false ), +        twinrx_gain_config_t(     16,  -18.3,   31,   21, false, false ), +        twinrx_gain_config_t(     17,  -17.3,   31,   20, false, false ), +        twinrx_gain_config_t(     18,  -16.3,   31,   19, false, false ), +        twinrx_gain_config_t(     19,  -15.3,   31,   18, false, false ), +        twinrx_gain_config_t(     20,  -14.3,   31,   17, false, false ), +        twinrx_gain_config_t(     21,  -13.3,   31,   16, false, false ), +        twinrx_gain_config_t(     22,  -12.3,   31,   15, false, false ), +        twinrx_gain_config_t(     23,  -11.3,   31,   14, false, false ), +        twinrx_gain_config_t(     24,  -10.3,   31,   13, false, false ), +        twinrx_gain_config_t(     25,   -9.3,   31,   12, false, false ), +        twinrx_gain_config_t(     26,   -8.3,   30,   12, false, false ), +        twinrx_gain_config_t(     27,   -7.3,   30,   11, false, false ), +        twinrx_gain_config_t(     28,   -6.3,   29,   11, false, false ), +        twinrx_gain_config_t(     29,   -5.3,   28,   11, false, false ), +        twinrx_gain_config_t(     30,   -4.3,   27,   11, false, false ), +        twinrx_gain_config_t(     31,   -3.3,   27,   10, false, false ), +        twinrx_gain_config_t(     32,   -2.3,   26,   10, false, false ), +        twinrx_gain_config_t(     33,   -1.3,   25,   10, false, false ), +        twinrx_gain_config_t(     34,   -0.3,   24,   10, false, false ), +        twinrx_gain_config_t(     35,    0.7,   23,   10, false, false ), +        twinrx_gain_config_t(     36,    1.7,   22,   10, false, false ), +        twinrx_gain_config_t(     37,    2.7,   21,   10, false, false ), +        twinrx_gain_config_t(     38,    3.7,   21,    9, false, false ), +        twinrx_gain_config_t(     39,    4.7,   20,    9, false, false ), +        twinrx_gain_config_t(     40,    5.7,   19,    9, false, false ), +        twinrx_gain_config_t(     41,    6.7,   18,    9, false, false ), +        twinrx_gain_config_t(     42,    7.7,   17,    9, false, false ), +        twinrx_gain_config_t(     43,    8.7,   16,    9, false, false ), +        twinrx_gain_config_t(     44,    9.7,   15,    9, false, false ), +        twinrx_gain_config_t(     45,   10.7,   14,    9, false, false ), +        twinrx_gain_config_t(     46,   11.7,   13,    9, false, false ), +        twinrx_gain_config_t(     47,   12.7,   12,    9, false, false ), +        twinrx_gain_config_t(     48,   13.7,   11,    9, false, false ), +        twinrx_gain_config_t(     49,   14.7,   10,    9, false, false ), +        twinrx_gain_config_t(     50,   15.7,    9,    9, false, false ), +        twinrx_gain_config_t(     51,   16.7,    8,    9, false, false ), +        twinrx_gain_config_t(     52,   17.7,    7,    9, false, false ), +        twinrx_gain_config_t(     53,   18.7,    6,    9, false, false ), +        twinrx_gain_config_t(     54,   19.7,    5,    9, false, false ), +        twinrx_gain_config_t(     55,   20.7,    4,    9, false, false ), +        twinrx_gain_config_t(     56,   21.7,    3,    9, false, false ), +        twinrx_gain_config_t(     57,   22.7,    2,    9, false, false ), +        twinrx_gain_config_t(     58,   23.7,    1,    9, false, false ), +        twinrx_gain_config_t(     59,   24.7,    0,    9, false, false ), +        twinrx_gain_config_t(     60,   25.7,    0,    8, false, false ), +        twinrx_gain_config_t(     61,   26.7,    0,    7, false, false ), +        twinrx_gain_config_t(     62,   27.7,    0,    6, false, false ), +        twinrx_gain_config_t(     63,   28.7,    0,    5, false, false ), +        twinrx_gain_config_t(     64,   29.7,    0,    4, false, false ), +        twinrx_gain_config_t(     65,   30.7,    0,    3, false, false ), +        twinrx_gain_config_t(     66,   31.7,    0,    2, false, false ), +        twinrx_gain_config_t(     67,   32.7,    0,    1, false, false ), +        twinrx_gain_config_t(     68,   33.7,    0,    0, false, false ), +        twinrx_gain_config_t(     69,   33.9,    3,    9,  true, false ), +        twinrx_gain_config_t(     70,   34.9,    2,    9,  true, false ), +        twinrx_gain_config_t(     71,   35.9,    1,    9,  true, false ), +        twinrx_gain_config_t(     72,   36.9,    0,    9,  true, false ), +        twinrx_gain_config_t(     73,   37.9,    0,    8,  true, false ), +        twinrx_gain_config_t(     74,   38.9,    0,    7,  true, false ), +        twinrx_gain_config_t(     75,   39.9,    0,    6,  true, false ), +        twinrx_gain_config_t(     76,   40.9,    0,    5,  true, false ), +        twinrx_gain_config_t(     77,   41.9,    0,    4,  true, false ), +        twinrx_gain_config_t(     78,   42.9,    0,    3,  true, false ), +        twinrx_gain_config_t(     79,   43.9,    0,    2,  true, false ), +        twinrx_gain_config_t(     80,   44.9,    0,    1,  true, false ), +        twinrx_gain_config_t(     81,   45.9,    0,    0,  true, false ), +        twinrx_gain_config_t(     82,   47.3,    1,   10,  true,  true ), +        twinrx_gain_config_t(     83,   48.3,    0,   10,  true,  true ), +        twinrx_gain_config_t(     84,   49.3,    0,    9,  true,  true ), +        twinrx_gain_config_t(     85,   50.3,    0,    8,  true,  true ), +        twinrx_gain_config_t(     86,   51.3,    0,    7,  true,  true ), +        twinrx_gain_config_t(     87,   52.3,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   53.3,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   54.3,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   55.3,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   56.3,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   57.3,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   58.3,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> HIGHBAND2_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> HIGHBAND2_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      4,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      5,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      6,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      7,  -30.9,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      8,  -29.9,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      9,  -28.9,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(     10,  -27.9,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(     11,  -26.9,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(     12,  -25.9,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(     13,  -24.9,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(     14,  -23.9,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     15,  -22.9,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     16,  -21.9,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     17,  -20.9,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     18,  -19.9,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     19,  -18.9,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     20,  -17.9,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     21,  -16.9,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     22,  -15.9,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     23,  -14.9,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     24,  -13.9,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     25,  -12.9,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     26,  -11.9,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     27,  -10.9,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     28,   -9.9,   30,   11, false, false ) ) -        ( twinrx_gain_config_t(     29,   -8.9,   29,   11, false, false ) ) -        ( twinrx_gain_config_t(     30,   -7.9,   29,   10, false, false ) ) -        ( twinrx_gain_config_t(     31,   -6.9,   28,   10, false, false ) ) -        ( twinrx_gain_config_t(     32,   -5.9,   27,   10, false, false ) ) -        ( twinrx_gain_config_t(     33,   -4.9,   27,    9, false, false ) ) -        ( twinrx_gain_config_t(     34,   -3.9,   26,    9, false, false ) ) -        ( twinrx_gain_config_t(     35,   -2.9,   25,    9, false, false ) ) -        ( twinrx_gain_config_t(     36,   -1.9,   24,    9, false, false ) ) -        ( twinrx_gain_config_t(     37,   -0.9,   23,    9, false, false ) ) -        ( twinrx_gain_config_t(     38,    0.1,   23,    8, false, false ) ) -        ( twinrx_gain_config_t(     39,    1.1,   22,    8, false, false ) ) -        ( twinrx_gain_config_t(     40,    2.1,   21,    8, false, false ) ) -        ( twinrx_gain_config_t(     41,    3.1,   20,    8, false, false ) ) -        ( twinrx_gain_config_t(     42,    4.1,   19,    8, false, false ) ) -        ( twinrx_gain_config_t(     43,    5.1,   18,    8, false, false ) ) -        ( twinrx_gain_config_t(     44,    6.1,   17,    8, false, false ) ) -        ( twinrx_gain_config_t(     45,    7.1,   16,    8, false, false ) ) -        ( twinrx_gain_config_t(     46,    8.1,   15,    8, false, false ) ) -        ( twinrx_gain_config_t(     47,    9.1,   14,    8, false, false ) ) -        ( twinrx_gain_config_t(     48,   10.1,   13,    8, false, false ) ) -        ( twinrx_gain_config_t(     49,   11.1,   12,    8, false, false ) ) -        ( twinrx_gain_config_t(     50,   12.1,   11,    8, false, false ) ) -        ( twinrx_gain_config_t(     51,   13.1,   10,    8, false, false ) ) -        ( twinrx_gain_config_t(     52,   14.1,    9,    8, false, false ) ) -        ( twinrx_gain_config_t(     53,   15.1,    8,    8, false, false ) ) -        ( twinrx_gain_config_t(     54,   16.1,    7,    8, false, false ) ) -        ( twinrx_gain_config_t(     55,   17.1,    6,    8, false, false ) ) -        ( twinrx_gain_config_t(     56,   18.1,    5,    8, false, false ) ) -        ( twinrx_gain_config_t(     57,   19.1,    4,    8, false, false ) ) -        ( twinrx_gain_config_t(     58,   20.1,    3,    8, false, false ) ) -        ( twinrx_gain_config_t(     59,   21.1,    2,    8, false, false ) ) -        ( twinrx_gain_config_t(     60,   22.1,    1,    8, false, false ) ) -        ( twinrx_gain_config_t(     61,   23.1,    0,    8, false, false ) ) -        ( twinrx_gain_config_t(     62,   24.1,    0,    7, false, false ) ) -        ( twinrx_gain_config_t(     63,   25.1,    0,    6, false, false ) ) -        ( twinrx_gain_config_t(     64,   26.1,    0,    5, false, false ) ) -        ( twinrx_gain_config_t(     65,   27.1,    0,    4, false, false ) ) -        ( twinrx_gain_config_t(     66,   28.1,    0,    3, false, false ) ) -        ( twinrx_gain_config_t(     67,   29.1,    0,    2, false, false ) ) -        ( twinrx_gain_config_t(     68,   30.1,    0,    1, false, false ) ) -        ( twinrx_gain_config_t(     69,   31.9,    0,   10, false,  true ) ) -        ( twinrx_gain_config_t(     70,   31.9,    0,   10, false,  true ) ) -        ( twinrx_gain_config_t(     71,   32.9,    0,    9, false,  true ) ) -        ( twinrx_gain_config_t(     72,   33.9,    0,    8, false,  true ) ) -        ( twinrx_gain_config_t(     73,   34.9,    0,    7, false,  true ) ) -        ( twinrx_gain_config_t(     74,   35.9,    0,    6, false,  true ) ) -        ( twinrx_gain_config_t(     75,   36.9,    0,    5, false,  true ) ) -        ( twinrx_gain_config_t(     76,   38.6,    0,    6,  true, false ) ) -        ( twinrx_gain_config_t(     77,   39.6,    0,    5,  true, false ) ) -        ( twinrx_gain_config_t(     78,   40.6,    0,    4,  true, false ) ) -        ( twinrx_gain_config_t(     79,   41.6,    0,    3,  true, false ) ) -        ( twinrx_gain_config_t(     80,   42.6,    0,    2,  true, false ) ) -        ( twinrx_gain_config_t(     81,   43.6,    0,    1,  true, false ) ) -        ( twinrx_gain_config_t(     82,   44.4,    2,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   45.4,    1,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   46.4,    0,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   47.4,    0,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   48.4,    0,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   49.4,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   50.4,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   51.4,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   52.4,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   53.4,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   54.4,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   55.4,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      4,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      5,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      6,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      7,  -30.9,   31,   31, false, false ), +        twinrx_gain_config_t(      8,  -29.9,   31,   30, false, false ), +        twinrx_gain_config_t(      9,  -28.9,   31,   29, false, false ), +        twinrx_gain_config_t(     10,  -27.9,   31,   28, false, false ), +        twinrx_gain_config_t(     11,  -26.9,   31,   27, false, false ), +        twinrx_gain_config_t(     12,  -25.9,   31,   26, false, false ), +        twinrx_gain_config_t(     13,  -24.9,   31,   25, false, false ), +        twinrx_gain_config_t(     14,  -23.9,   31,   24, false, false ), +        twinrx_gain_config_t(     15,  -22.9,   31,   23, false, false ), +        twinrx_gain_config_t(     16,  -21.9,   31,   22, false, false ), +        twinrx_gain_config_t(     17,  -20.9,   31,   21, false, false ), +        twinrx_gain_config_t(     18,  -19.9,   31,   20, false, false ), +        twinrx_gain_config_t(     19,  -18.9,   31,   19, false, false ), +        twinrx_gain_config_t(     20,  -17.9,   31,   18, false, false ), +        twinrx_gain_config_t(     21,  -16.9,   31,   17, false, false ), +        twinrx_gain_config_t(     22,  -15.9,   31,   16, false, false ), +        twinrx_gain_config_t(     23,  -14.9,   31,   15, false, false ), +        twinrx_gain_config_t(     24,  -13.9,   31,   14, false, false ), +        twinrx_gain_config_t(     25,  -12.9,   31,   13, false, false ), +        twinrx_gain_config_t(     26,  -11.9,   31,   12, false, false ), +        twinrx_gain_config_t(     27,  -10.9,   31,   11, false, false ), +        twinrx_gain_config_t(     28,   -9.9,   30,   11, false, false ), +        twinrx_gain_config_t(     29,   -8.9,   29,   11, false, false ), +        twinrx_gain_config_t(     30,   -7.9,   29,   10, false, false ), +        twinrx_gain_config_t(     31,   -6.9,   28,   10, false, false ), +        twinrx_gain_config_t(     32,   -5.9,   27,   10, false, false ), +        twinrx_gain_config_t(     33,   -4.9,   27,    9, false, false ), +        twinrx_gain_config_t(     34,   -3.9,   26,    9, false, false ), +        twinrx_gain_config_t(     35,   -2.9,   25,    9, false, false ), +        twinrx_gain_config_t(     36,   -1.9,   24,    9, false, false ), +        twinrx_gain_config_t(     37,   -0.9,   23,    9, false, false ), +        twinrx_gain_config_t(     38,    0.1,   23,    8, false, false ), +        twinrx_gain_config_t(     39,    1.1,   22,    8, false, false ), +        twinrx_gain_config_t(     40,    2.1,   21,    8, false, false ), +        twinrx_gain_config_t(     41,    3.1,   20,    8, false, false ), +        twinrx_gain_config_t(     42,    4.1,   19,    8, false, false ), +        twinrx_gain_config_t(     43,    5.1,   18,    8, false, false ), +        twinrx_gain_config_t(     44,    6.1,   17,    8, false, false ), +        twinrx_gain_config_t(     45,    7.1,   16,    8, false, false ), +        twinrx_gain_config_t(     46,    8.1,   15,    8, false, false ), +        twinrx_gain_config_t(     47,    9.1,   14,    8, false, false ), +        twinrx_gain_config_t(     48,   10.1,   13,    8, false, false ), +        twinrx_gain_config_t(     49,   11.1,   12,    8, false, false ), +        twinrx_gain_config_t(     50,   12.1,   11,    8, false, false ), +        twinrx_gain_config_t(     51,   13.1,   10,    8, false, false ), +        twinrx_gain_config_t(     52,   14.1,    9,    8, false, false ), +        twinrx_gain_config_t(     53,   15.1,    8,    8, false, false ), +        twinrx_gain_config_t(     54,   16.1,    7,    8, false, false ), +        twinrx_gain_config_t(     55,   17.1,    6,    8, false, false ), +        twinrx_gain_config_t(     56,   18.1,    5,    8, false, false ), +        twinrx_gain_config_t(     57,   19.1,    4,    8, false, false ), +        twinrx_gain_config_t(     58,   20.1,    3,    8, false, false ), +        twinrx_gain_config_t(     59,   21.1,    2,    8, false, false ), +        twinrx_gain_config_t(     60,   22.1,    1,    8, false, false ), +        twinrx_gain_config_t(     61,   23.1,    0,    8, false, false ), +        twinrx_gain_config_t(     62,   24.1,    0,    7, false, false ), +        twinrx_gain_config_t(     63,   25.1,    0,    6, false, false ), +        twinrx_gain_config_t(     64,   26.1,    0,    5, false, false ), +        twinrx_gain_config_t(     65,   27.1,    0,    4, false, false ), +        twinrx_gain_config_t(     66,   28.1,    0,    3, false, false ), +        twinrx_gain_config_t(     67,   29.1,    0,    2, false, false ), +        twinrx_gain_config_t(     68,   30.1,    0,    1, false, false ), +        twinrx_gain_config_t(     69,   31.9,    0,   10, false,  true ), +        twinrx_gain_config_t(     70,   31.9,    0,   10, false,  true ), +        twinrx_gain_config_t(     71,   32.9,    0,    9, false,  true ), +        twinrx_gain_config_t(     72,   33.9,    0,    8, false,  true ), +        twinrx_gain_config_t(     73,   34.9,    0,    7, false,  true ), +        twinrx_gain_config_t(     74,   35.9,    0,    6, false,  true ), +        twinrx_gain_config_t(     75,   36.9,    0,    5, false,  true ), +        twinrx_gain_config_t(     76,   38.6,    0,    6,  true, false ), +        twinrx_gain_config_t(     77,   39.6,    0,    5,  true, false ), +        twinrx_gain_config_t(     78,   40.6,    0,    4,  true, false ), +        twinrx_gain_config_t(     79,   41.6,    0,    3,  true, false ), +        twinrx_gain_config_t(     80,   42.6,    0,    2,  true, false ), +        twinrx_gain_config_t(     81,   43.6,    0,    1,  true, false ), +        twinrx_gain_config_t(     82,   44.4,    2,    9,  true,  true ), +        twinrx_gain_config_t(     83,   45.4,    1,    9,  true,  true ), +        twinrx_gain_config_t(     84,   46.4,    0,    9,  true,  true ), +        twinrx_gain_config_t(     85,   47.4,    0,    8,  true,  true ), +        twinrx_gain_config_t(     86,   48.4,    0,    7,  true,  true ), +        twinrx_gain_config_t(     87,   49.4,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   50.4,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   51.4,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   52.4,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   53.4,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   54.4,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   55.4,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> HIGHBAND3_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> HIGHBAND3_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      4,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      5,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      6,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      7,  -30.1,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      8,  -29.1,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      9,  -28.1,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(     10,  -27.1,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(     11,  -26.1,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(     12,  -25.1,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(     13,  -24.1,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     14,  -23.1,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     15,  -22.1,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     16,  -21.1,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     17,  -20.1,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     18,  -19.1,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     19,  -18.1,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     20,  -17.1,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     21,  -16.1,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     22,  -15.1,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     23,  -14.1,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     24,  -13.1,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     25,  -12.1,   30,   13, false, false ) ) -        ( twinrx_gain_config_t(     26,  -11.1,   30,   12, false, false ) ) -        ( twinrx_gain_config_t(     27,  -10.1,   29,   12, false, false ) ) -        ( twinrx_gain_config_t(     28,   -9.1,   28,   12, false, false ) ) -        ( twinrx_gain_config_t(     29,   -8.1,   28,   11, false, false ) ) -        ( twinrx_gain_config_t(     30,   -7.1,   27,   11, false, false ) ) -        ( twinrx_gain_config_t(     31,   -6.1,   26,   11, false, false ) ) -        ( twinrx_gain_config_t(     32,   -5.1,   26,   10, false, false ) ) -        ( twinrx_gain_config_t(     33,   -4.1,   25,   10, false, false ) ) -        ( twinrx_gain_config_t(     34,   -3.1,   24,   10, false, false ) ) -        ( twinrx_gain_config_t(     35,   -2.1,   23,   10, false, false ) ) -        ( twinrx_gain_config_t(     36,   -1.1,   22,   10, false, false ) ) -        ( twinrx_gain_config_t(     37,   -0.1,   21,   10, false, false ) ) -        ( twinrx_gain_config_t(     38,    0.9,   21,    9, false, false ) ) -        ( twinrx_gain_config_t(     39,    1.9,   20,    9, false, false ) ) -        ( twinrx_gain_config_t(     40,    2.9,   19,    9, false, false ) ) -        ( twinrx_gain_config_t(     41,    3.9,   18,    9, false, false ) ) -        ( twinrx_gain_config_t(     42,    4.9,   17,    9, false, false ) ) -        ( twinrx_gain_config_t(     43,    5.9,   16,    9, false, false ) ) -        ( twinrx_gain_config_t(     44,    6.9,   15,    9, false, false ) ) -        ( twinrx_gain_config_t(     45,    7.9,   14,    9, false, false ) ) -        ( twinrx_gain_config_t(     46,    8.9,   13,    9, false, false ) ) -        ( twinrx_gain_config_t(     47,    9.9,   12,    9, false, false ) ) -        ( twinrx_gain_config_t(     48,   10.9,   11,    9, false, false ) ) -        ( twinrx_gain_config_t(     49,   11.9,   10,    9, false, false ) ) -        ( twinrx_gain_config_t(     50,   12.9,    9,    9, false, false ) ) -        ( twinrx_gain_config_t(     51,   13.9,    8,    9, false, false ) ) -        ( twinrx_gain_config_t(     52,   14.9,    7,    9, false, false ) ) -        ( twinrx_gain_config_t(     53,   15.9,    6,    9, false, false ) ) -        ( twinrx_gain_config_t(     54,   16.9,    5,    9, false, false ) ) -        ( twinrx_gain_config_t(     55,   17.9,    4,    9, false, false ) ) -        ( twinrx_gain_config_t(     56,   18.9,    3,    9, false, false ) ) -        ( twinrx_gain_config_t(     57,   19.9,    2,    9, false, false ) ) -        ( twinrx_gain_config_t(     58,   20.9,    1,    9, false, false ) ) -        ( twinrx_gain_config_t(     59,   21.9,    0,    9, false, false ) ) -        ( twinrx_gain_config_t(     60,   22.9,    0,    8, false, false ) ) -        ( twinrx_gain_config_t(     61,   23.9,    0,    7, false, false ) ) -        ( twinrx_gain_config_t(     62,   24.9,    0,    6, false, false ) ) -        ( twinrx_gain_config_t(     63,   25.9,    0,    5, false, false ) ) -        ( twinrx_gain_config_t(     64,   26.9,    0,    4, false, false ) ) -        ( twinrx_gain_config_t(     65,   27.9,    0,    3, false, false ) ) -        ( twinrx_gain_config_t(     66,   28.9,    0,    2, false, false ) ) -        ( twinrx_gain_config_t(     67,   29.9,    0,    1, false, false ) ) -        ( twinrx_gain_config_t(     68,   31.3,    0,    9, false,  true ) ) -        ( twinrx_gain_config_t(     69,   32.3,    0,    8, false,  true ) ) -        ( twinrx_gain_config_t(     70,   33.3,    0,    7, false,  true ) ) -        ( twinrx_gain_config_t(     71,   34.3,    0,    6, false,  true ) ) -        ( twinrx_gain_config_t(     72,   35.3,    0,    5, false,  true ) ) -        ( twinrx_gain_config_t(     73,   36.3,    0,    4, false,  true ) ) -        ( twinrx_gain_config_t(     74,   37.3,    0,    3, false,  true ) ) -        ( twinrx_gain_config_t(     75,   37.6,    0,    9,  true, false ) ) -        ( twinrx_gain_config_t(     76,   38.6,    0,    8,  true, false ) ) -        ( twinrx_gain_config_t(     77,   39.6,    0,    7,  true, false ) ) -        ( twinrx_gain_config_t(     78,   40.6,    0,    6,  true, false ) ) -        ( twinrx_gain_config_t(     79,   41.6,    0,    5,  true, false ) ) -        ( twinrx_gain_config_t(     80,   42.6,    0,    4,  true, false ) ) -        ( twinrx_gain_config_t(     81,   43.6,    0,    3,  true, false ) ) -        ( twinrx_gain_config_t(     82,   44.6,    0,    2,  true, false ) ) -        ( twinrx_gain_config_t(     83,   45.6,    0,    1,  true, false ) ) -        ( twinrx_gain_config_t(     84,   47.0,    0,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   48.0,    0,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   49.0,    0,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   50.0,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   51.0,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   52.0,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   53.0,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   54.0,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   55.0,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   56.0,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      4,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      5,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      6,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      7,  -30.1,   31,   30, false, false ), +        twinrx_gain_config_t(      8,  -29.1,   31,   29, false, false ), +        twinrx_gain_config_t(      9,  -28.1,   31,   28, false, false ), +        twinrx_gain_config_t(     10,  -27.1,   31,   27, false, false ), +        twinrx_gain_config_t(     11,  -26.1,   31,   26, false, false ), +        twinrx_gain_config_t(     12,  -25.1,   31,   25, false, false ), +        twinrx_gain_config_t(     13,  -24.1,   31,   24, false, false ), +        twinrx_gain_config_t(     14,  -23.1,   31,   23, false, false ), +        twinrx_gain_config_t(     15,  -22.1,   31,   22, false, false ), +        twinrx_gain_config_t(     16,  -21.1,   31,   21, false, false ), +        twinrx_gain_config_t(     17,  -20.1,   31,   20, false, false ), +        twinrx_gain_config_t(     18,  -19.1,   31,   19, false, false ), +        twinrx_gain_config_t(     19,  -18.1,   31,   18, false, false ), +        twinrx_gain_config_t(     20,  -17.1,   31,   17, false, false ), +        twinrx_gain_config_t(     21,  -16.1,   31,   16, false, false ), +        twinrx_gain_config_t(     22,  -15.1,   31,   15, false, false ), +        twinrx_gain_config_t(     23,  -14.1,   31,   14, false, false ), +        twinrx_gain_config_t(     24,  -13.1,   31,   13, false, false ), +        twinrx_gain_config_t(     25,  -12.1,   30,   13, false, false ), +        twinrx_gain_config_t(     26,  -11.1,   30,   12, false, false ), +        twinrx_gain_config_t(     27,  -10.1,   29,   12, false, false ), +        twinrx_gain_config_t(     28,   -9.1,   28,   12, false, false ), +        twinrx_gain_config_t(     29,   -8.1,   28,   11, false, false ), +        twinrx_gain_config_t(     30,   -7.1,   27,   11, false, false ), +        twinrx_gain_config_t(     31,   -6.1,   26,   11, false, false ), +        twinrx_gain_config_t(     32,   -5.1,   26,   10, false, false ), +        twinrx_gain_config_t(     33,   -4.1,   25,   10, false, false ), +        twinrx_gain_config_t(     34,   -3.1,   24,   10, false, false ), +        twinrx_gain_config_t(     35,   -2.1,   23,   10, false, false ), +        twinrx_gain_config_t(     36,   -1.1,   22,   10, false, false ), +        twinrx_gain_config_t(     37,   -0.1,   21,   10, false, false ), +        twinrx_gain_config_t(     38,    0.9,   21,    9, false, false ), +        twinrx_gain_config_t(     39,    1.9,   20,    9, false, false ), +        twinrx_gain_config_t(     40,    2.9,   19,    9, false, false ), +        twinrx_gain_config_t(     41,    3.9,   18,    9, false, false ), +        twinrx_gain_config_t(     42,    4.9,   17,    9, false, false ), +        twinrx_gain_config_t(     43,    5.9,   16,    9, false, false ), +        twinrx_gain_config_t(     44,    6.9,   15,    9, false, false ), +        twinrx_gain_config_t(     45,    7.9,   14,    9, false, false ), +        twinrx_gain_config_t(     46,    8.9,   13,    9, false, false ), +        twinrx_gain_config_t(     47,    9.9,   12,    9, false, false ), +        twinrx_gain_config_t(     48,   10.9,   11,    9, false, false ), +        twinrx_gain_config_t(     49,   11.9,   10,    9, false, false ), +        twinrx_gain_config_t(     50,   12.9,    9,    9, false, false ), +        twinrx_gain_config_t(     51,   13.9,    8,    9, false, false ), +        twinrx_gain_config_t(     52,   14.9,    7,    9, false, false ), +        twinrx_gain_config_t(     53,   15.9,    6,    9, false, false ), +        twinrx_gain_config_t(     54,   16.9,    5,    9, false, false ), +        twinrx_gain_config_t(     55,   17.9,    4,    9, false, false ), +        twinrx_gain_config_t(     56,   18.9,    3,    9, false, false ), +        twinrx_gain_config_t(     57,   19.9,    2,    9, false, false ), +        twinrx_gain_config_t(     58,   20.9,    1,    9, false, false ), +        twinrx_gain_config_t(     59,   21.9,    0,    9, false, false ), +        twinrx_gain_config_t(     60,   22.9,    0,    8, false, false ), +        twinrx_gain_config_t(     61,   23.9,    0,    7, false, false ), +        twinrx_gain_config_t(     62,   24.9,    0,    6, false, false ), +        twinrx_gain_config_t(     63,   25.9,    0,    5, false, false ), +        twinrx_gain_config_t(     64,   26.9,    0,    4, false, false ), +        twinrx_gain_config_t(     65,   27.9,    0,    3, false, false ), +        twinrx_gain_config_t(     66,   28.9,    0,    2, false, false ), +        twinrx_gain_config_t(     67,   29.9,    0,    1, false, false ), +        twinrx_gain_config_t(     68,   31.3,    0,    9, false,  true ), +        twinrx_gain_config_t(     69,   32.3,    0,    8, false,  true ), +        twinrx_gain_config_t(     70,   33.3,    0,    7, false,  true ), +        twinrx_gain_config_t(     71,   34.3,    0,    6, false,  true ), +        twinrx_gain_config_t(     72,   35.3,    0,    5, false,  true ), +        twinrx_gain_config_t(     73,   36.3,    0,    4, false,  true ), +        twinrx_gain_config_t(     74,   37.3,    0,    3, false,  true ), +        twinrx_gain_config_t(     75,   37.6,    0,    9,  true, false ), +        twinrx_gain_config_t(     76,   38.6,    0,    8,  true, false ), +        twinrx_gain_config_t(     77,   39.6,    0,    7,  true, false ), +        twinrx_gain_config_t(     78,   40.6,    0,    6,  true, false ), +        twinrx_gain_config_t(     79,   41.6,    0,    5,  true, false ), +        twinrx_gain_config_t(     80,   42.6,    0,    4,  true, false ), +        twinrx_gain_config_t(     81,   43.6,    0,    3,  true, false ), +        twinrx_gain_config_t(     82,   44.6,    0,    2,  true, false ), +        twinrx_gain_config_t(     83,   45.6,    0,    1,  true, false ), +        twinrx_gain_config_t(     84,   47.0,    0,    9,  true,  true ), +        twinrx_gain_config_t(     85,   48.0,    0,    8,  true,  true ), +        twinrx_gain_config_t(     86,   49.0,    0,    7,  true,  true ), +        twinrx_gain_config_t(     87,   50.0,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   51.0,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   52.0,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   53.0,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   54.0,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   55.0,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   56.0,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> HIGHBAND4_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> HIGHBAND4_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      4,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      5,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      6,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      7,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      8,  -37.2,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      9,  -36.2,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(     10,  -35.2,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(     11,  -34.2,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(     12,  -33.2,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(     13,  -32.2,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(     14,  -31.2,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(     15,  -30.2,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     16,  -29.2,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     17,  -28.2,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     18,  -27.2,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     19,  -26.2,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     20,  -25.2,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     21,  -24.2,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     22,  -23.2,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     23,  -22.2,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     24,  -21.2,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     25,  -20.2,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     26,  -19.2,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     27,  -18.2,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     28,  -17.2,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     29,  -16.2,   31,   10, false, false ) ) -        ( twinrx_gain_config_t(     30,  -15.2,   30,   10, false, false ) ) -        ( twinrx_gain_config_t(     31,  -14.2,   30,    9, false, false ) ) -        ( twinrx_gain_config_t(     32,  -13.2,   29,    9, false, false ) ) -        ( twinrx_gain_config_t(     33,  -12.2,   28,    9, false, false ) ) -        ( twinrx_gain_config_t(     34,  -11.2,   28,    8, false, false ) ) -        ( twinrx_gain_config_t(     35,  -10.2,   27,    8, false, false ) ) -        ( twinrx_gain_config_t(     36,   -9.2,   27,    7, false, false ) ) -        ( twinrx_gain_config_t(     37,   -8.2,   26,    7, false, false ) ) -        ( twinrx_gain_config_t(     38,   -7.2,   25,    7, false, false ) ) -        ( twinrx_gain_config_t(     39,   -6.2,   24,    7, false, false ) ) -        ( twinrx_gain_config_t(     40,   -5.2,   24,    6, false, false ) ) -        ( twinrx_gain_config_t(     41,   -4.2,   23,    6, false, false ) ) -        ( twinrx_gain_config_t(     42,   -3.2,   22,    6, false, false ) ) -        ( twinrx_gain_config_t(     43,   -2.2,   21,    6, false, false ) ) -        ( twinrx_gain_config_t(     44,   -1.2,   20,    6, false, false ) ) -        ( twinrx_gain_config_t(     45,   -0.2,   19,    6, false, false ) ) -        ( twinrx_gain_config_t(     46,    0.8,   18,    6, false, false ) ) -        ( twinrx_gain_config_t(     47,    1.8,   17,    6, false, false ) ) -        ( twinrx_gain_config_t(     48,    2.8,   16,    6, false, false ) ) -        ( twinrx_gain_config_t(     49,    3.8,   16,    5, false, false ) ) -        ( twinrx_gain_config_t(     50,    4.8,   15,    5, false, false ) ) -        ( twinrx_gain_config_t(     51,    5.8,   14,    5, false, false ) ) -        ( twinrx_gain_config_t(     52,    6.8,   13,    5, false, false ) ) -        ( twinrx_gain_config_t(     53,    7.8,   12,    5, false, false ) ) -        ( twinrx_gain_config_t(     54,    8.8,   11,    5, false, false ) ) -        ( twinrx_gain_config_t(     55,    9.8,   10,    5, false, false ) ) -        ( twinrx_gain_config_t(     56,   10.8,    9,    5, false, false ) ) -        ( twinrx_gain_config_t(     57,   11.8,    8,    5, false, false ) ) -        ( twinrx_gain_config_t(     58,   12.8,    7,    5, false, false ) ) -        ( twinrx_gain_config_t(     59,   13.8,    6,    5, false, false ) ) -        ( twinrx_gain_config_t(     60,   14.8,    5,    5, false, false ) ) -        ( twinrx_gain_config_t(     61,   15.8,    4,    5, false, false ) ) -        ( twinrx_gain_config_t(     62,   16.8,    3,    5, false, false ) ) -        ( twinrx_gain_config_t(     63,   17.8,    2,    5, false, false ) ) -        ( twinrx_gain_config_t(     64,   18.8,    1,    5, false, false ) ) -        ( twinrx_gain_config_t(     65,   19.8,    0,    5, false, false ) ) -        ( twinrx_gain_config_t(     66,   20.8,    0,    4, false, false ) ) -        ( twinrx_gain_config_t(     67,   21.8,    0,    3, false, false ) ) -        ( twinrx_gain_config_t(     68,   22.8,    0,    2, false, false ) ) -        ( twinrx_gain_config_t(     69,   23.8,    0,    1, false, false ) ) -        ( twinrx_gain_config_t(     70,   24.8,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     71,   26.1,    0,    6, false,  true ) ) -        ( twinrx_gain_config_t(     72,   26.1,    0,    6, false,  true ) ) -        ( twinrx_gain_config_t(     73,   27.1,    0,    5, false,  true ) ) -        ( twinrx_gain_config_t(     74,   28.1,    0,    4, false,  true ) ) -        ( twinrx_gain_config_t(     75,   29.1,    0,    3, false,  true ) ) -        ( twinrx_gain_config_t(     76,   30.1,    0,    2, false,  true ) ) -        ( twinrx_gain_config_t(     77,   31.1,    0,    1, false,  true ) ) -        ( twinrx_gain_config_t(     78,   32.1,    0,    0, false,  true ) ) -        ( twinrx_gain_config_t(     79,   33.3,    0,    7,  true, false ) ) -        ( twinrx_gain_config_t(     80,   34.3,    0,    6,  true, false ) ) -        ( twinrx_gain_config_t(     81,   35.3,    0,    5,  true, false ) ) -        ( twinrx_gain_config_t(     82,   36.3,    0,    4,  true, false ) ) -        ( twinrx_gain_config_t(     83,   37.3,    0,    3,  true, false ) ) -        ( twinrx_gain_config_t(     84,   38.3,    0,    2,  true, false ) ) -        ( twinrx_gain_config_t(     85,   39.3,    0,    1,  true, false ) ) -        ( twinrx_gain_config_t(     86,   40.3,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     87,   41.6,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   42.6,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   43.6,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   44.6,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   45.6,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   46.6,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   47.6,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      4,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      5,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      6,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      7,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      8,  -37.2,   31,   31, false, false ), +        twinrx_gain_config_t(      9,  -36.2,   31,   30, false, false ), +        twinrx_gain_config_t(     10,  -35.2,   31,   29, false, false ), +        twinrx_gain_config_t(     11,  -34.2,   31,   28, false, false ), +        twinrx_gain_config_t(     12,  -33.2,   31,   27, false, false ), +        twinrx_gain_config_t(     13,  -32.2,   31,   26, false, false ), +        twinrx_gain_config_t(     14,  -31.2,   31,   25, false, false ), +        twinrx_gain_config_t(     15,  -30.2,   31,   24, false, false ), +        twinrx_gain_config_t(     16,  -29.2,   31,   23, false, false ), +        twinrx_gain_config_t(     17,  -28.2,   31,   22, false, false ), +        twinrx_gain_config_t(     18,  -27.2,   31,   21, false, false ), +        twinrx_gain_config_t(     19,  -26.2,   31,   20, false, false ), +        twinrx_gain_config_t(     20,  -25.2,   31,   19, false, false ), +        twinrx_gain_config_t(     21,  -24.2,   31,   18, false, false ), +        twinrx_gain_config_t(     22,  -23.2,   31,   17, false, false ), +        twinrx_gain_config_t(     23,  -22.2,   31,   16, false, false ), +        twinrx_gain_config_t(     24,  -21.2,   31,   15, false, false ), +        twinrx_gain_config_t(     25,  -20.2,   31,   14, false, false ), +        twinrx_gain_config_t(     26,  -19.2,   31,   13, false, false ), +        twinrx_gain_config_t(     27,  -18.2,   31,   12, false, false ), +        twinrx_gain_config_t(     28,  -17.2,   31,   11, false, false ), +        twinrx_gain_config_t(     29,  -16.2,   31,   10, false, false ), +        twinrx_gain_config_t(     30,  -15.2,   30,   10, false, false ), +        twinrx_gain_config_t(     31,  -14.2,   30,    9, false, false ), +        twinrx_gain_config_t(     32,  -13.2,   29,    9, false, false ), +        twinrx_gain_config_t(     33,  -12.2,   28,    9, false, false ), +        twinrx_gain_config_t(     34,  -11.2,   28,    8, false, false ), +        twinrx_gain_config_t(     35,  -10.2,   27,    8, false, false ), +        twinrx_gain_config_t(     36,   -9.2,   27,    7, false, false ), +        twinrx_gain_config_t(     37,   -8.2,   26,    7, false, false ), +        twinrx_gain_config_t(     38,   -7.2,   25,    7, false, false ), +        twinrx_gain_config_t(     39,   -6.2,   24,    7, false, false ), +        twinrx_gain_config_t(     40,   -5.2,   24,    6, false, false ), +        twinrx_gain_config_t(     41,   -4.2,   23,    6, false, false ), +        twinrx_gain_config_t(     42,   -3.2,   22,    6, false, false ), +        twinrx_gain_config_t(     43,   -2.2,   21,    6, false, false ), +        twinrx_gain_config_t(     44,   -1.2,   20,    6, false, false ), +        twinrx_gain_config_t(     45,   -0.2,   19,    6, false, false ), +        twinrx_gain_config_t(     46,    0.8,   18,    6, false, false ), +        twinrx_gain_config_t(     47,    1.8,   17,    6, false, false ), +        twinrx_gain_config_t(     48,    2.8,   16,    6, false, false ), +        twinrx_gain_config_t(     49,    3.8,   16,    5, false, false ), +        twinrx_gain_config_t(     50,    4.8,   15,    5, false, false ), +        twinrx_gain_config_t(     51,    5.8,   14,    5, false, false ), +        twinrx_gain_config_t(     52,    6.8,   13,    5, false, false ), +        twinrx_gain_config_t(     53,    7.8,   12,    5, false, false ), +        twinrx_gain_config_t(     54,    8.8,   11,    5, false, false ), +        twinrx_gain_config_t(     55,    9.8,   10,    5, false, false ), +        twinrx_gain_config_t(     56,   10.8,    9,    5, false, false ), +        twinrx_gain_config_t(     57,   11.8,    8,    5, false, false ), +        twinrx_gain_config_t(     58,   12.8,    7,    5, false, false ), +        twinrx_gain_config_t(     59,   13.8,    6,    5, false, false ), +        twinrx_gain_config_t(     60,   14.8,    5,    5, false, false ), +        twinrx_gain_config_t(     61,   15.8,    4,    5, false, false ), +        twinrx_gain_config_t(     62,   16.8,    3,    5, false, false ), +        twinrx_gain_config_t(     63,   17.8,    2,    5, false, false ), +        twinrx_gain_config_t(     64,   18.8,    1,    5, false, false ), +        twinrx_gain_config_t(     65,   19.8,    0,    5, false, false ), +        twinrx_gain_config_t(     66,   20.8,    0,    4, false, false ), +        twinrx_gain_config_t(     67,   21.8,    0,    3, false, false ), +        twinrx_gain_config_t(     68,   22.8,    0,    2, false, false ), +        twinrx_gain_config_t(     69,   23.8,    0,    1, false, false ), +        twinrx_gain_config_t(     70,   24.8,    0,    0, false, false ), +        twinrx_gain_config_t(     71,   26.1,    0,    6, false,  true ), +        twinrx_gain_config_t(     72,   26.1,    0,    6, false,  true ), +        twinrx_gain_config_t(     73,   27.1,    0,    5, false,  true ), +        twinrx_gain_config_t(     74,   28.1,    0,    4, false,  true ), +        twinrx_gain_config_t(     75,   29.1,    0,    3, false,  true ), +        twinrx_gain_config_t(     76,   30.1,    0,    2, false,  true ), +        twinrx_gain_config_t(     77,   31.1,    0,    1, false,  true ), +        twinrx_gain_config_t(     78,   32.1,    0,    0, false,  true ), +        twinrx_gain_config_t(     79,   33.3,    0,    7,  true, false ), +        twinrx_gain_config_t(     80,   34.3,    0,    6,  true, false ), +        twinrx_gain_config_t(     81,   35.3,    0,    5,  true, false ), +        twinrx_gain_config_t(     82,   36.3,    0,    4,  true, false ), +        twinrx_gain_config_t(     83,   37.3,    0,    3,  true, false ), +        twinrx_gain_config_t(     84,   38.3,    0,    2,  true, false ), +        twinrx_gain_config_t(     85,   39.3,    0,    1,  true, false ), +        twinrx_gain_config_t(     86,   40.3,    0,    0,  true, false ), +        twinrx_gain_config_t(     87,   41.6,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   42.6,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   43.6,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   44.6,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   45.6,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   46.6,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   47.6,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> LOWBAND1_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> LOWBAND1_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -31.1,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -30.1,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      2,  -29.1,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      3,  -28.1,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(      4,  -27.1,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(      5,  -26.1,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(      6,  -25.1,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(      7,  -24.1,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(      8,  -23.1,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(      9,  -22.1,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     10,  -21.1,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     11,  -20.1,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     12,  -19.1,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     13,  -18.1,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     14,  -17.1,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     15,  -16.1,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     16,  -15.1,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     17,  -14.1,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     18,  -13.1,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     19,  -12.1,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     20,  -11.1,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     21,  -10.1,   31,   10, false, false ) ) -        ( twinrx_gain_config_t(     22,   -9.1,   31,    9, false, false ) ) -        ( twinrx_gain_config_t(     23,   -8.1,   31,    8, false, false ) ) -        ( twinrx_gain_config_t(     24,   -7.1,   31,    7, false, false ) ) -        ( twinrx_gain_config_t(     25,   -6.1,   31,    6, false, false ) ) -        ( twinrx_gain_config_t(     26,   -5.1,   31,    5, false, false ) ) -        ( twinrx_gain_config_t(     27,   -4.1,   31,    4, false, false ) ) -        ( twinrx_gain_config_t(     28,   -3.1,   31,    3, false, false ) ) -        ( twinrx_gain_config_t(     29,   -2.1,   31,    2, false, false ) ) -        ( twinrx_gain_config_t(     30,   -1.1,   31,    1, false, false ) ) -        ( twinrx_gain_config_t(     31,   -0.1,   31,    0, false, false ) ) -        ( twinrx_gain_config_t(     32,    0.9,   30,    0, false, false ) ) -        ( twinrx_gain_config_t(     33,    1.9,   29,    0, false, false ) ) -        ( twinrx_gain_config_t(     34,    2.9,   28,    0, false, false ) ) -        ( twinrx_gain_config_t(     35,    3.9,   27,    0, false, false ) ) -        ( twinrx_gain_config_t(     36,    4.9,   26,    0, false, false ) ) -        ( twinrx_gain_config_t(     37,    5.9,   25,    0, false, false ) ) -        ( twinrx_gain_config_t(     38,    6.9,   24,    0, false, false ) ) -        ( twinrx_gain_config_t(     39,    7.9,   23,    0, false, false ) ) -        ( twinrx_gain_config_t(     40,    8.9,   22,    0, false, false ) ) -        ( twinrx_gain_config_t(     41,    9.9,   21,    0, false, false ) ) -        ( twinrx_gain_config_t(     42,   10.9,   20,    0, false, false ) ) -        ( twinrx_gain_config_t(     43,   11.9,   19,    0, false, false ) ) -        ( twinrx_gain_config_t(     44,   12.9,   18,    0, false, false ) ) -        ( twinrx_gain_config_t(     45,   13.9,   17,    0, false, false ) ) -        ( twinrx_gain_config_t(     46,   14.9,   16,    0, false, false ) ) -        ( twinrx_gain_config_t(     47,   15.9,   15,    0, false, false ) ) -        ( twinrx_gain_config_t(     48,   16.9,   14,    0, false, false ) ) -        ( twinrx_gain_config_t(     49,   17.9,   13,    0, false, false ) ) -        ( twinrx_gain_config_t(     50,   18.9,   12,    0, false, false ) ) -        ( twinrx_gain_config_t(     51,   19.9,   11,    0, false, false ) ) -        ( twinrx_gain_config_t(     52,   20.9,   10,    0, false, false ) ) -        ( twinrx_gain_config_t(     53,   21.9,    9,    0, false, false ) ) -        ( twinrx_gain_config_t(     54,   22.9,    8,    0, false, false ) ) -        ( twinrx_gain_config_t(     55,   23.9,    7,    0, false, false ) ) -        ( twinrx_gain_config_t(     56,   24.9,    6,    0, false, false ) ) -        ( twinrx_gain_config_t(     57,   25.9,    5,    0, false, false ) ) -        ( twinrx_gain_config_t(     58,   26.9,    4,    0, false, false ) ) -        ( twinrx_gain_config_t(     59,   27.9,    3,    0, false, false ) ) -        ( twinrx_gain_config_t(     60,   28.9,    2,    0, false, false ) ) -        ( twinrx_gain_config_t(     61,   29.9,    1,    0, false, false ) ) -        ( twinrx_gain_config_t(     62,   30.9,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     63,   31.2,    4,   11, false,  true ) ) -        ( twinrx_gain_config_t(     64,   32.2,    3,   11, false,  true ) ) -        ( twinrx_gain_config_t(     65,   33.2,    2,   11, false,  true ) ) -        ( twinrx_gain_config_t(     66,   34.2,    1,   11, false,  true ) ) -        ( twinrx_gain_config_t(     67,   35.2,    0,   11, false,  true ) ) -        ( twinrx_gain_config_t(     68,   36.2,   10,    0,  true, false ) ) -        ( twinrx_gain_config_t(     69,   37.2,    9,    0,  true, false ) ) -        ( twinrx_gain_config_t(     70,   38.2,    8,    0,  true, false ) ) -        ( twinrx_gain_config_t(     71,   39.2,    7,    0,  true, false ) ) -        ( twinrx_gain_config_t(     72,   40.2,    6,    0,  true, false ) ) -        ( twinrx_gain_config_t(     73,   41.2,    5,    0,  true, false ) ) -        ( twinrx_gain_config_t(     74,   42.2,    4,    0,  true, false ) ) -        ( twinrx_gain_config_t(     75,   43.2,    3,    0,  true, false ) ) -        ( twinrx_gain_config_t(     76,   44.2,    2,    0,  true, false ) ) -        ( twinrx_gain_config_t(     77,   45.2,    1,    0,  true, false ) ) -        ( twinrx_gain_config_t(     78,   46.2,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     79,   47.5,    4,   10,  true,  true ) ) -        ( twinrx_gain_config_t(     80,   48.5,    3,   10,  true,  true ) ) -        ( twinrx_gain_config_t(     81,   49.5,    3,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     82,   50.5,    2,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   51.5,    1,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   52.5,    1,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   53.5,    0,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   54.5,    0,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   55.5,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   56.5,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   57.5,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   58.5,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   59.5,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   60.5,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   61.5,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -31.1,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -30.1,   31,   30, false, false ), +        twinrx_gain_config_t(      2,  -29.1,   31,   29, false, false ), +        twinrx_gain_config_t(      3,  -28.1,   31,   28, false, false ), +        twinrx_gain_config_t(      4,  -27.1,   31,   27, false, false ), +        twinrx_gain_config_t(      5,  -26.1,   31,   26, false, false ), +        twinrx_gain_config_t(      6,  -25.1,   31,   25, false, false ), +        twinrx_gain_config_t(      7,  -24.1,   31,   24, false, false ), +        twinrx_gain_config_t(      8,  -23.1,   31,   23, false, false ), +        twinrx_gain_config_t(      9,  -22.1,   31,   22, false, false ), +        twinrx_gain_config_t(     10,  -21.1,   31,   21, false, false ), +        twinrx_gain_config_t(     11,  -20.1,   31,   20, false, false ), +        twinrx_gain_config_t(     12,  -19.1,   31,   19, false, false ), +        twinrx_gain_config_t(     13,  -18.1,   31,   18, false, false ), +        twinrx_gain_config_t(     14,  -17.1,   31,   17, false, false ), +        twinrx_gain_config_t(     15,  -16.1,   31,   16, false, false ), +        twinrx_gain_config_t(     16,  -15.1,   31,   15, false, false ), +        twinrx_gain_config_t(     17,  -14.1,   31,   14, false, false ), +        twinrx_gain_config_t(     18,  -13.1,   31,   13, false, false ), +        twinrx_gain_config_t(     19,  -12.1,   31,   12, false, false ), +        twinrx_gain_config_t(     20,  -11.1,   31,   11, false, false ), +        twinrx_gain_config_t(     21,  -10.1,   31,   10, false, false ), +        twinrx_gain_config_t(     22,   -9.1,   31,    9, false, false ), +        twinrx_gain_config_t(     23,   -8.1,   31,    8, false, false ), +        twinrx_gain_config_t(     24,   -7.1,   31,    7, false, false ), +        twinrx_gain_config_t(     25,   -6.1,   31,    6, false, false ), +        twinrx_gain_config_t(     26,   -5.1,   31,    5, false, false ), +        twinrx_gain_config_t(     27,   -4.1,   31,    4, false, false ), +        twinrx_gain_config_t(     28,   -3.1,   31,    3, false, false ), +        twinrx_gain_config_t(     29,   -2.1,   31,    2, false, false ), +        twinrx_gain_config_t(     30,   -1.1,   31,    1, false, false ), +        twinrx_gain_config_t(     31,   -0.1,   31,    0, false, false ), +        twinrx_gain_config_t(     32,    0.9,   30,    0, false, false ), +        twinrx_gain_config_t(     33,    1.9,   29,    0, false, false ), +        twinrx_gain_config_t(     34,    2.9,   28,    0, false, false ), +        twinrx_gain_config_t(     35,    3.9,   27,    0, false, false ), +        twinrx_gain_config_t(     36,    4.9,   26,    0, false, false ), +        twinrx_gain_config_t(     37,    5.9,   25,    0, false, false ), +        twinrx_gain_config_t(     38,    6.9,   24,    0, false, false ), +        twinrx_gain_config_t(     39,    7.9,   23,    0, false, false ), +        twinrx_gain_config_t(     40,    8.9,   22,    0, false, false ), +        twinrx_gain_config_t(     41,    9.9,   21,    0, false, false ), +        twinrx_gain_config_t(     42,   10.9,   20,    0, false, false ), +        twinrx_gain_config_t(     43,   11.9,   19,    0, false, false ), +        twinrx_gain_config_t(     44,   12.9,   18,    0, false, false ), +        twinrx_gain_config_t(     45,   13.9,   17,    0, false, false ), +        twinrx_gain_config_t(     46,   14.9,   16,    0, false, false ), +        twinrx_gain_config_t(     47,   15.9,   15,    0, false, false ), +        twinrx_gain_config_t(     48,   16.9,   14,    0, false, false ), +        twinrx_gain_config_t(     49,   17.9,   13,    0, false, false ), +        twinrx_gain_config_t(     50,   18.9,   12,    0, false, false ), +        twinrx_gain_config_t(     51,   19.9,   11,    0, false, false ), +        twinrx_gain_config_t(     52,   20.9,   10,    0, false, false ), +        twinrx_gain_config_t(     53,   21.9,    9,    0, false, false ), +        twinrx_gain_config_t(     54,   22.9,    8,    0, false, false ), +        twinrx_gain_config_t(     55,   23.9,    7,    0, false, false ), +        twinrx_gain_config_t(     56,   24.9,    6,    0, false, false ), +        twinrx_gain_config_t(     57,   25.9,    5,    0, false, false ), +        twinrx_gain_config_t(     58,   26.9,    4,    0, false, false ), +        twinrx_gain_config_t(     59,   27.9,    3,    0, false, false ), +        twinrx_gain_config_t(     60,   28.9,    2,    0, false, false ), +        twinrx_gain_config_t(     61,   29.9,    1,    0, false, false ), +        twinrx_gain_config_t(     62,   30.9,    0,    0, false, false ), +        twinrx_gain_config_t(     63,   31.2,    4,   11, false,  true ), +        twinrx_gain_config_t(     64,   32.2,    3,   11, false,  true ), +        twinrx_gain_config_t(     65,   33.2,    2,   11, false,  true ), +        twinrx_gain_config_t(     66,   34.2,    1,   11, false,  true ), +        twinrx_gain_config_t(     67,   35.2,    0,   11, false,  true ), +        twinrx_gain_config_t(     68,   36.2,   10,    0,  true, false ), +        twinrx_gain_config_t(     69,   37.2,    9,    0,  true, false ), +        twinrx_gain_config_t(     70,   38.2,    8,    0,  true, false ), +        twinrx_gain_config_t(     71,   39.2,    7,    0,  true, false ), +        twinrx_gain_config_t(     72,   40.2,    6,    0,  true, false ), +        twinrx_gain_config_t(     73,   41.2,    5,    0,  true, false ), +        twinrx_gain_config_t(     74,   42.2,    4,    0,  true, false ), +        twinrx_gain_config_t(     75,   43.2,    3,    0,  true, false ), +        twinrx_gain_config_t(     76,   44.2,    2,    0,  true, false ), +        twinrx_gain_config_t(     77,   45.2,    1,    0,  true, false ), +        twinrx_gain_config_t(     78,   46.2,    0,    0,  true, false ), +        twinrx_gain_config_t(     79,   47.5,    4,   10,  true,  true ), +        twinrx_gain_config_t(     80,   48.5,    3,   10,  true,  true ), +        twinrx_gain_config_t(     81,   49.5,    3,    9,  true,  true ), +        twinrx_gain_config_t(     82,   50.5,    2,    9,  true,  true ), +        twinrx_gain_config_t(     83,   51.5,    1,    9,  true,  true ), +        twinrx_gain_config_t(     84,   52.5,    1,    8,  true,  true ), +        twinrx_gain_config_t(     85,   53.5,    0,    8,  true,  true ), +        twinrx_gain_config_t(     86,   54.5,    0,    7,  true,  true ), +        twinrx_gain_config_t(     87,   55.5,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   56.5,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   57.5,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   58.5,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   59.5,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   60.5,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   61.5,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> LOWBAND2_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> LOWBAND2_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -33.4,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -33.4,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -32.4,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      3,  -31.4,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      4,  -30.4,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(      5,  -29.4,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(      6,  -28.4,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(      7,  -27.4,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(      8,  -26.4,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(      9,  -25.4,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     10,  -24.4,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     11,  -23.4,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     12,  -22.4,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     13,  -21.4,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     14,  -20.4,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     15,  -19.4,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     16,  -18.4,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     17,  -17.4,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     18,  -16.4,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     19,  -15.4,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     20,  -14.4,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     21,  -13.4,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     22,  -12.4,   31,   10, false, false ) ) -        ( twinrx_gain_config_t(     23,  -11.4,   31,    9, false, false ) ) -        ( twinrx_gain_config_t(     24,  -10.4,   31,    8, false, false ) ) -        ( twinrx_gain_config_t(     25,   -9.4,   31,    7, false, false ) ) -        ( twinrx_gain_config_t(     26,   -8.4,   31,    6, false, false ) ) -        ( twinrx_gain_config_t(     27,   -7.4,   31,    5, false, false ) ) -        ( twinrx_gain_config_t(     28,   -6.4,   31,    4, false, false ) ) -        ( twinrx_gain_config_t(     29,   -5.4,   31,    3, false, false ) ) -        ( twinrx_gain_config_t(     30,   -4.4,   31,    2, false, false ) ) -        ( twinrx_gain_config_t(     31,   -3.4,   31,    1, false, false ) ) -        ( twinrx_gain_config_t(     32,   -2.4,   31,    0, false, false ) ) -        ( twinrx_gain_config_t(     33,   -1.4,   30,    0, false, false ) ) -        ( twinrx_gain_config_t(     34,   -0.4,   29,    0, false, false ) ) -        ( twinrx_gain_config_t(     35,    0.6,   28,    0, false, false ) ) -        ( twinrx_gain_config_t(     36,    1.6,   27,    0, false, false ) ) -        ( twinrx_gain_config_t(     37,    2.6,   26,    0, false, false ) ) -        ( twinrx_gain_config_t(     38,    3.6,   25,    0, false, false ) ) -        ( twinrx_gain_config_t(     39,    4.6,   24,    0, false, false ) ) -        ( twinrx_gain_config_t(     40,    5.6,   23,    0, false, false ) ) -        ( twinrx_gain_config_t(     41,    6.6,   22,    0, false, false ) ) -        ( twinrx_gain_config_t(     42,    7.6,   21,    0, false, false ) ) -        ( twinrx_gain_config_t(     43,    8.6,   20,    0, false, false ) ) -        ( twinrx_gain_config_t(     44,    9.6,   19,    0, false, false ) ) -        ( twinrx_gain_config_t(     45,   10.6,   18,    0, false, false ) ) -        ( twinrx_gain_config_t(     46,   11.6,   17,    0, false, false ) ) -        ( twinrx_gain_config_t(     47,   12.6,   16,    0, false, false ) ) -        ( twinrx_gain_config_t(     48,   13.6,   15,    0, false, false ) ) -        ( twinrx_gain_config_t(     49,   14.6,   14,    0, false, false ) ) -        ( twinrx_gain_config_t(     50,   15.6,   13,    0, false, false ) ) -        ( twinrx_gain_config_t(     51,   16.6,   12,    0, false, false ) ) -        ( twinrx_gain_config_t(     52,   17.6,   11,    0, false, false ) ) -        ( twinrx_gain_config_t(     53,   18.6,   10,    0, false, false ) ) -        ( twinrx_gain_config_t(     54,   19.6,    9,    0, false, false ) ) -        ( twinrx_gain_config_t(     55,   20.6,    8,    0, false, false ) ) -        ( twinrx_gain_config_t(     56,   21.6,    7,    0, false, false ) ) -        ( twinrx_gain_config_t(     57,   22.6,    6,    0, false, false ) ) -        ( twinrx_gain_config_t(     58,   23.6,    5,    0, false, false ) ) -        ( twinrx_gain_config_t(     59,   24.6,    4,    0, false, false ) ) -        ( twinrx_gain_config_t(     60,   25.6,    3,    0, false, false ) ) -        ( twinrx_gain_config_t(     61,   26.6,    2,    0, false, false ) ) -        ( twinrx_gain_config_t(     62,   27.6,    1,    0, false, false ) ) -        ( twinrx_gain_config_t(     63,   28.6,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     64,   29.7,    5,    9, false,  true ) ) -        ( twinrx_gain_config_t(     65,   30.7,    4,    9, false,  true ) ) -        ( twinrx_gain_config_t(     66,   31.7,    3,    9, false,  true ) ) -        ( twinrx_gain_config_t(     67,   32.7,    2,    9, false,  true ) ) -        ( twinrx_gain_config_t(     68,   33.7,    1,    9, false,  true ) ) -        ( twinrx_gain_config_t(     69,   34.7,    0,    9, false,  true ) ) -        ( twinrx_gain_config_t(     70,   35.7,    0,    8, false,  true ) ) -        ( twinrx_gain_config_t(     71,   36.7,    7,    0,  true, false ) ) -        ( twinrx_gain_config_t(     72,   37.7,    6,    0,  true, false ) ) -        ( twinrx_gain_config_t(     73,   38.7,    5,    0,  true, false ) ) -        ( twinrx_gain_config_t(     74,   39.7,    4,    0,  true, false ) ) -        ( twinrx_gain_config_t(     75,   40.7,    3,    0,  true, false ) ) -        ( twinrx_gain_config_t(     76,   41.7,    2,    0,  true, false ) ) -        ( twinrx_gain_config_t(     77,   42.7,    1,    0,  true, false ) ) -        ( twinrx_gain_config_t(     78,   43.7,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     79,   44.8,    6,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     80,   45.8,    5,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     81,   46.8,    4,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     82,   47.8,    4,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   48.8,    3,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   49.8,    2,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   50.8,    1,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   51.8,    1,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   52.8,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   53.8,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   54.8,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   55.8,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   56.8,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   57.8,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   58.8,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -33.4,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -33.4,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -32.4,   31,   30, false, false ), +        twinrx_gain_config_t(      3,  -31.4,   31,   29, false, false ), +        twinrx_gain_config_t(      4,  -30.4,   31,   28, false, false ), +        twinrx_gain_config_t(      5,  -29.4,   31,   27, false, false ), +        twinrx_gain_config_t(      6,  -28.4,   31,   26, false, false ), +        twinrx_gain_config_t(      7,  -27.4,   31,   25, false, false ), +        twinrx_gain_config_t(      8,  -26.4,   31,   24, false, false ), +        twinrx_gain_config_t(      9,  -25.4,   31,   23, false, false ), +        twinrx_gain_config_t(     10,  -24.4,   31,   22, false, false ), +        twinrx_gain_config_t(     11,  -23.4,   31,   21, false, false ), +        twinrx_gain_config_t(     12,  -22.4,   31,   20, false, false ), +        twinrx_gain_config_t(     13,  -21.4,   31,   19, false, false ), +        twinrx_gain_config_t(     14,  -20.4,   31,   18, false, false ), +        twinrx_gain_config_t(     15,  -19.4,   31,   17, false, false ), +        twinrx_gain_config_t(     16,  -18.4,   31,   16, false, false ), +        twinrx_gain_config_t(     17,  -17.4,   31,   15, false, false ), +        twinrx_gain_config_t(     18,  -16.4,   31,   14, false, false ), +        twinrx_gain_config_t(     19,  -15.4,   31,   13, false, false ), +        twinrx_gain_config_t(     20,  -14.4,   31,   12, false, false ), +        twinrx_gain_config_t(     21,  -13.4,   31,   11, false, false ), +        twinrx_gain_config_t(     22,  -12.4,   31,   10, false, false ), +        twinrx_gain_config_t(     23,  -11.4,   31,    9, false, false ), +        twinrx_gain_config_t(     24,  -10.4,   31,    8, false, false ), +        twinrx_gain_config_t(     25,   -9.4,   31,    7, false, false ), +        twinrx_gain_config_t(     26,   -8.4,   31,    6, false, false ), +        twinrx_gain_config_t(     27,   -7.4,   31,    5, false, false ), +        twinrx_gain_config_t(     28,   -6.4,   31,    4, false, false ), +        twinrx_gain_config_t(     29,   -5.4,   31,    3, false, false ), +        twinrx_gain_config_t(     30,   -4.4,   31,    2, false, false ), +        twinrx_gain_config_t(     31,   -3.4,   31,    1, false, false ), +        twinrx_gain_config_t(     32,   -2.4,   31,    0, false, false ), +        twinrx_gain_config_t(     33,   -1.4,   30,    0, false, false ), +        twinrx_gain_config_t(     34,   -0.4,   29,    0, false, false ), +        twinrx_gain_config_t(     35,    0.6,   28,    0, false, false ), +        twinrx_gain_config_t(     36,    1.6,   27,    0, false, false ), +        twinrx_gain_config_t(     37,    2.6,   26,    0, false, false ), +        twinrx_gain_config_t(     38,    3.6,   25,    0, false, false ), +        twinrx_gain_config_t(     39,    4.6,   24,    0, false, false ), +        twinrx_gain_config_t(     40,    5.6,   23,    0, false, false ), +        twinrx_gain_config_t(     41,    6.6,   22,    0, false, false ), +        twinrx_gain_config_t(     42,    7.6,   21,    0, false, false ), +        twinrx_gain_config_t(     43,    8.6,   20,    0, false, false ), +        twinrx_gain_config_t(     44,    9.6,   19,    0, false, false ), +        twinrx_gain_config_t(     45,   10.6,   18,    0, false, false ), +        twinrx_gain_config_t(     46,   11.6,   17,    0, false, false ), +        twinrx_gain_config_t(     47,   12.6,   16,    0, false, false ), +        twinrx_gain_config_t(     48,   13.6,   15,    0, false, false ), +        twinrx_gain_config_t(     49,   14.6,   14,    0, false, false ), +        twinrx_gain_config_t(     50,   15.6,   13,    0, false, false ), +        twinrx_gain_config_t(     51,   16.6,   12,    0, false, false ), +        twinrx_gain_config_t(     52,   17.6,   11,    0, false, false ), +        twinrx_gain_config_t(     53,   18.6,   10,    0, false, false ), +        twinrx_gain_config_t(     54,   19.6,    9,    0, false, false ), +        twinrx_gain_config_t(     55,   20.6,    8,    0, false, false ), +        twinrx_gain_config_t(     56,   21.6,    7,    0, false, false ), +        twinrx_gain_config_t(     57,   22.6,    6,    0, false, false ), +        twinrx_gain_config_t(     58,   23.6,    5,    0, false, false ), +        twinrx_gain_config_t(     59,   24.6,    4,    0, false, false ), +        twinrx_gain_config_t(     60,   25.6,    3,    0, false, false ), +        twinrx_gain_config_t(     61,   26.6,    2,    0, false, false ), +        twinrx_gain_config_t(     62,   27.6,    1,    0, false, false ), +        twinrx_gain_config_t(     63,   28.6,    0,    0, false, false ), +        twinrx_gain_config_t(     64,   29.7,    5,    9, false,  true ), +        twinrx_gain_config_t(     65,   30.7,    4,    9, false,  true ), +        twinrx_gain_config_t(     66,   31.7,    3,    9, false,  true ), +        twinrx_gain_config_t(     67,   32.7,    2,    9, false,  true ), +        twinrx_gain_config_t(     68,   33.7,    1,    9, false,  true ), +        twinrx_gain_config_t(     69,   34.7,    0,    9, false,  true ), +        twinrx_gain_config_t(     70,   35.7,    0,    8, false,  true ), +        twinrx_gain_config_t(     71,   36.7,    7,    0,  true, false ), +        twinrx_gain_config_t(     72,   37.7,    6,    0,  true, false ), +        twinrx_gain_config_t(     73,   38.7,    5,    0,  true, false ), +        twinrx_gain_config_t(     74,   39.7,    4,    0,  true, false ), +        twinrx_gain_config_t(     75,   40.7,    3,    0,  true, false ), +        twinrx_gain_config_t(     76,   41.7,    2,    0,  true, false ), +        twinrx_gain_config_t(     77,   42.7,    1,    0,  true, false ), +        twinrx_gain_config_t(     78,   43.7,    0,    0,  true, false ), +        twinrx_gain_config_t(     79,   44.8,    6,    8,  true,  true ), +        twinrx_gain_config_t(     80,   45.8,    5,    8,  true,  true ), +        twinrx_gain_config_t(     81,   46.8,    4,    8,  true,  true ), +        twinrx_gain_config_t(     82,   47.8,    4,    7,  true,  true ), +        twinrx_gain_config_t(     83,   48.8,    3,    7,  true,  true ), +        twinrx_gain_config_t(     84,   49.8,    2,    7,  true,  true ), +        twinrx_gain_config_t(     85,   50.8,    1,    7,  true,  true ), +        twinrx_gain_config_t(     86,   51.8,    1,    6,  true,  true ), +        twinrx_gain_config_t(     87,   52.8,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   53.8,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   54.8,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   55.8,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   56.8,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   57.8,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   58.8,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> LOWBAND3_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> LOWBAND3_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -34.0,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -34.0,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -34.0,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -33.0,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      4,  -32.0,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      5,  -31.0,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(      6,  -30.0,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(      7,  -29.0,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(      8,  -28.0,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(      9,  -27.0,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     10,  -26.0,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     11,  -25.0,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     12,  -24.0,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     13,  -23.0,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     14,  -22.0,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     15,  -21.0,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     16,  -20.0,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     17,  -19.0,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     18,  -18.0,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     19,  -17.0,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     20,  -16.0,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     21,  -15.0,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     22,  -14.0,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     23,  -13.0,   31,   10, false, false ) ) -        ( twinrx_gain_config_t(     24,  -12.0,   31,    9, false, false ) ) -        ( twinrx_gain_config_t(     25,  -11.0,   31,    8, false, false ) ) -        ( twinrx_gain_config_t(     26,  -10.0,   31,    7, false, false ) ) -        ( twinrx_gain_config_t(     27,   -9.0,   31,    6, false, false ) ) -        ( twinrx_gain_config_t(     28,   -8.0,   31,    5, false, false ) ) -        ( twinrx_gain_config_t(     29,   -7.0,   31,    4, false, false ) ) -        ( twinrx_gain_config_t(     30,   -6.0,   31,    3, false, false ) ) -        ( twinrx_gain_config_t(     31,   -5.0,   31,    2, false, false ) ) -        ( twinrx_gain_config_t(     32,   -4.0,   31,    1, false, false ) ) -        ( twinrx_gain_config_t(     33,   -3.0,   31,    0, false, false ) ) -        ( twinrx_gain_config_t(     34,   -2.0,   30,    0, false, false ) ) -        ( twinrx_gain_config_t(     35,   -1.0,   29,    0, false, false ) ) -        ( twinrx_gain_config_t(     36,   -0.0,   28,    0, false, false ) ) -        ( twinrx_gain_config_t(     37,    1.0,   27,    0, false, false ) ) -        ( twinrx_gain_config_t(     38,    2.0,   26,    0, false, false ) ) -        ( twinrx_gain_config_t(     39,    3.0,   25,    0, false, false ) ) -        ( twinrx_gain_config_t(     40,    4.0,   24,    0, false, false ) ) -        ( twinrx_gain_config_t(     41,    5.0,   23,    0, false, false ) ) -        ( twinrx_gain_config_t(     42,    6.0,   22,    0, false, false ) ) -        ( twinrx_gain_config_t(     43,    7.0,   21,    0, false, false ) ) -        ( twinrx_gain_config_t(     44,    8.0,   20,    0, false, false ) ) -        ( twinrx_gain_config_t(     45,    9.0,   19,    0, false, false ) ) -        ( twinrx_gain_config_t(     46,   10.0,   18,    0, false, false ) ) -        ( twinrx_gain_config_t(     47,   11.0,   17,    0, false, false ) ) -        ( twinrx_gain_config_t(     48,   12.0,   16,    0, false, false ) ) -        ( twinrx_gain_config_t(     49,   13.0,   15,    0, false, false ) ) -        ( twinrx_gain_config_t(     50,   14.0,   14,    0, false, false ) ) -        ( twinrx_gain_config_t(     51,   15.0,   13,    0, false, false ) ) -        ( twinrx_gain_config_t(     52,   16.0,   12,    0, false, false ) ) -        ( twinrx_gain_config_t(     53,   17.0,   11,    0, false, false ) ) -        ( twinrx_gain_config_t(     54,   18.0,   10,    0, false, false ) ) -        ( twinrx_gain_config_t(     55,   19.0,    9,    0, false, false ) ) -        ( twinrx_gain_config_t(     56,   20.0,    8,    0, false, false ) ) -        ( twinrx_gain_config_t(     57,   21.0,    7,    0, false, false ) ) -        ( twinrx_gain_config_t(     58,   22.0,    6,    0, false, false ) ) -        ( twinrx_gain_config_t(     59,   23.0,    5,    0, false, false ) ) -        ( twinrx_gain_config_t(     60,   24.0,    4,    0, false, false ) ) -        ( twinrx_gain_config_t(     61,   25.0,    3,    0, false, false ) ) -        ( twinrx_gain_config_t(     62,   26.0,    2,    0, false, false ) ) -        ( twinrx_gain_config_t(     63,   27.0,    1,    0, false, false ) ) -        ( twinrx_gain_config_t(     64,   28.0,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     65,   29.5,    5,    8, false,  true ) ) -        ( twinrx_gain_config_t(     66,   30.5,    4,    8, false,  true ) ) -        ( twinrx_gain_config_t(     67,   31.5,    3,    8, false,  true ) ) -        ( twinrx_gain_config_t(     68,   32.5,    2,    8, false,  true ) ) -        ( twinrx_gain_config_t(     69,   33.5,    1,    8, false,  true ) ) -        ( twinrx_gain_config_t(     70,   34.5,    0,    8, false,  true ) ) -        ( twinrx_gain_config_t(     71,   34.5,    0,    8, false,  true ) ) -        ( twinrx_gain_config_t(     72,   36.5,    6,    0,  true, false ) ) -        ( twinrx_gain_config_t(     73,   36.5,    6,    0,  true, false ) ) -        ( twinrx_gain_config_t(     74,   37.5,    5,    0,  true, false ) ) -        ( twinrx_gain_config_t(     75,   38.5,    4,    0,  true, false ) ) -        ( twinrx_gain_config_t(     76,   39.5,    3,    0,  true, false ) ) -        ( twinrx_gain_config_t(     77,   40.5,    2,    0,  true, false ) ) -        ( twinrx_gain_config_t(     78,   41.5,    1,    0,  true, false ) ) -        ( twinrx_gain_config_t(     79,   42.5,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     80,   44.0,    6,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     81,   45.0,    5,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     82,   46.0,    4,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   47.0,    3,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   48.0,    3,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   49.0,    2,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   50.0,    1,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   51.0,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   52.0,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   53.0,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   54.0,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   55.0,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   56.0,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   57.0,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -34.0,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -34.0,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -34.0,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -33.0,   31,   30, false, false ), +        twinrx_gain_config_t(      4,  -32.0,   31,   29, false, false ), +        twinrx_gain_config_t(      5,  -31.0,   31,   28, false, false ), +        twinrx_gain_config_t(      6,  -30.0,   31,   27, false, false ), +        twinrx_gain_config_t(      7,  -29.0,   31,   26, false, false ), +        twinrx_gain_config_t(      8,  -28.0,   31,   25, false, false ), +        twinrx_gain_config_t(      9,  -27.0,   31,   24, false, false ), +        twinrx_gain_config_t(     10,  -26.0,   31,   23, false, false ), +        twinrx_gain_config_t(     11,  -25.0,   31,   22, false, false ), +        twinrx_gain_config_t(     12,  -24.0,   31,   21, false, false ), +        twinrx_gain_config_t(     13,  -23.0,   31,   20, false, false ), +        twinrx_gain_config_t(     14,  -22.0,   31,   19, false, false ), +        twinrx_gain_config_t(     15,  -21.0,   31,   18, false, false ), +        twinrx_gain_config_t(     16,  -20.0,   31,   17, false, false ), +        twinrx_gain_config_t(     17,  -19.0,   31,   16, false, false ), +        twinrx_gain_config_t(     18,  -18.0,   31,   15, false, false ), +        twinrx_gain_config_t(     19,  -17.0,   31,   14, false, false ), +        twinrx_gain_config_t(     20,  -16.0,   31,   13, false, false ), +        twinrx_gain_config_t(     21,  -15.0,   31,   12, false, false ), +        twinrx_gain_config_t(     22,  -14.0,   31,   11, false, false ), +        twinrx_gain_config_t(     23,  -13.0,   31,   10, false, false ), +        twinrx_gain_config_t(     24,  -12.0,   31,    9, false, false ), +        twinrx_gain_config_t(     25,  -11.0,   31,    8, false, false ), +        twinrx_gain_config_t(     26,  -10.0,   31,    7, false, false ), +        twinrx_gain_config_t(     27,   -9.0,   31,    6, false, false ), +        twinrx_gain_config_t(     28,   -8.0,   31,    5, false, false ), +        twinrx_gain_config_t(     29,   -7.0,   31,    4, false, false ), +        twinrx_gain_config_t(     30,   -6.0,   31,    3, false, false ), +        twinrx_gain_config_t(     31,   -5.0,   31,    2, false, false ), +        twinrx_gain_config_t(     32,   -4.0,   31,    1, false, false ), +        twinrx_gain_config_t(     33,   -3.0,   31,    0, false, false ), +        twinrx_gain_config_t(     34,   -2.0,   30,    0, false, false ), +        twinrx_gain_config_t(     35,   -1.0,   29,    0, false, false ), +        twinrx_gain_config_t(     36,   -0.0,   28,    0, false, false ), +        twinrx_gain_config_t(     37,    1.0,   27,    0, false, false ), +        twinrx_gain_config_t(     38,    2.0,   26,    0, false, false ), +        twinrx_gain_config_t(     39,    3.0,   25,    0, false, false ), +        twinrx_gain_config_t(     40,    4.0,   24,    0, false, false ), +        twinrx_gain_config_t(     41,    5.0,   23,    0, false, false ), +        twinrx_gain_config_t(     42,    6.0,   22,    0, false, false ), +        twinrx_gain_config_t(     43,    7.0,   21,    0, false, false ), +        twinrx_gain_config_t(     44,    8.0,   20,    0, false, false ), +        twinrx_gain_config_t(     45,    9.0,   19,    0, false, false ), +        twinrx_gain_config_t(     46,   10.0,   18,    0, false, false ), +        twinrx_gain_config_t(     47,   11.0,   17,    0, false, false ), +        twinrx_gain_config_t(     48,   12.0,   16,    0, false, false ), +        twinrx_gain_config_t(     49,   13.0,   15,    0, false, false ), +        twinrx_gain_config_t(     50,   14.0,   14,    0, false, false ), +        twinrx_gain_config_t(     51,   15.0,   13,    0, false, false ), +        twinrx_gain_config_t(     52,   16.0,   12,    0, false, false ), +        twinrx_gain_config_t(     53,   17.0,   11,    0, false, false ), +        twinrx_gain_config_t(     54,   18.0,   10,    0, false, false ), +        twinrx_gain_config_t(     55,   19.0,    9,    0, false, false ), +        twinrx_gain_config_t(     56,   20.0,    8,    0, false, false ), +        twinrx_gain_config_t(     57,   21.0,    7,    0, false, false ), +        twinrx_gain_config_t(     58,   22.0,    6,    0, false, false ), +        twinrx_gain_config_t(     59,   23.0,    5,    0, false, false ), +        twinrx_gain_config_t(     60,   24.0,    4,    0, false, false ), +        twinrx_gain_config_t(     61,   25.0,    3,    0, false, false ), +        twinrx_gain_config_t(     62,   26.0,    2,    0, false, false ), +        twinrx_gain_config_t(     63,   27.0,    1,    0, false, false ), +        twinrx_gain_config_t(     64,   28.0,    0,    0, false, false ), +        twinrx_gain_config_t(     65,   29.5,    5,    8, false,  true ), +        twinrx_gain_config_t(     66,   30.5,    4,    8, false,  true ), +        twinrx_gain_config_t(     67,   31.5,    3,    8, false,  true ), +        twinrx_gain_config_t(     68,   32.5,    2,    8, false,  true ), +        twinrx_gain_config_t(     69,   33.5,    1,    8, false,  true ), +        twinrx_gain_config_t(     70,   34.5,    0,    8, false,  true ), +        twinrx_gain_config_t(     71,   34.5,    0,    8, false,  true ), +        twinrx_gain_config_t(     72,   36.5,    6,    0,  true, false ), +        twinrx_gain_config_t(     73,   36.5,    6,    0,  true, false ), +        twinrx_gain_config_t(     74,   37.5,    5,    0,  true, false ), +        twinrx_gain_config_t(     75,   38.5,    4,    0,  true, false ), +        twinrx_gain_config_t(     76,   39.5,    3,    0,  true, false ), +        twinrx_gain_config_t(     77,   40.5,    2,    0,  true, false ), +        twinrx_gain_config_t(     78,   41.5,    1,    0,  true, false ), +        twinrx_gain_config_t(     79,   42.5,    0,    0,  true, false ), +        twinrx_gain_config_t(     80,   44.0,    6,    7,  true,  true ), +        twinrx_gain_config_t(     81,   45.0,    5,    7,  true,  true ), +        twinrx_gain_config_t(     82,   46.0,    4,    7,  true,  true ), +        twinrx_gain_config_t(     83,   47.0,    3,    7,  true,  true ), +        twinrx_gain_config_t(     84,   48.0,    3,    6,  true,  true ), +        twinrx_gain_config_t(     85,   49.0,    2,    6,  true,  true ), +        twinrx_gain_config_t(     86,   50.0,    1,    6,  true,  true ), +        twinrx_gain_config_t(     87,   51.0,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   52.0,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   53.0,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   54.0,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   55.0,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   56.0,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   57.0,    0,    0,  true,  true ), +}; -static const std::vector<twinrx_gain_config_t> LOWBAND4_TABLE = boost::assign::list_of +static const std::vector<twinrx_gain_config_t> LOWBAND4_TABLE{          //                       Index,   Gain, Atten1, Atten2,  Amp1,  Amp2 -        ( twinrx_gain_config_t(      0,  -32.8,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      1,  -32.8,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      2,  -32.8,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      3,  -32.8,   31,   31, false, false ) ) -        ( twinrx_gain_config_t(      4,  -31.8,   31,   30, false, false ) ) -        ( twinrx_gain_config_t(      5,  -30.8,   31,   29, false, false ) ) -        ( twinrx_gain_config_t(      6,  -29.8,   31,   28, false, false ) ) -        ( twinrx_gain_config_t(      7,  -28.8,   31,   27, false, false ) ) -        ( twinrx_gain_config_t(      8,  -27.8,   31,   26, false, false ) ) -        ( twinrx_gain_config_t(      9,  -26.8,   31,   25, false, false ) ) -        ( twinrx_gain_config_t(     10,  -25.8,   31,   24, false, false ) ) -        ( twinrx_gain_config_t(     11,  -24.8,   31,   23, false, false ) ) -        ( twinrx_gain_config_t(     12,  -23.8,   31,   22, false, false ) ) -        ( twinrx_gain_config_t(     13,  -22.8,   31,   21, false, false ) ) -        ( twinrx_gain_config_t(     14,  -21.8,   31,   20, false, false ) ) -        ( twinrx_gain_config_t(     15,  -20.8,   31,   19, false, false ) ) -        ( twinrx_gain_config_t(     16,  -19.8,   31,   18, false, false ) ) -        ( twinrx_gain_config_t(     17,  -18.8,   31,   17, false, false ) ) -        ( twinrx_gain_config_t(     18,  -17.8,   31,   16, false, false ) ) -        ( twinrx_gain_config_t(     19,  -16.8,   31,   15, false, false ) ) -        ( twinrx_gain_config_t(     20,  -15.8,   31,   14, false, false ) ) -        ( twinrx_gain_config_t(     21,  -14.8,   31,   13, false, false ) ) -        ( twinrx_gain_config_t(     22,  -13.8,   31,   12, false, false ) ) -        ( twinrx_gain_config_t(     23,  -12.8,   31,   11, false, false ) ) -        ( twinrx_gain_config_t(     24,  -11.8,   31,   10, false, false ) ) -        ( twinrx_gain_config_t(     25,  -10.8,   31,    9, false, false ) ) -        ( twinrx_gain_config_t(     26,   -9.8,   31,    8, false, false ) ) -        ( twinrx_gain_config_t(     27,   -8.8,   31,    7, false, false ) ) -        ( twinrx_gain_config_t(     28,   -7.8,   31,    6, false, false ) ) -        ( twinrx_gain_config_t(     29,   -6.8,   31,    5, false, false ) ) -        ( twinrx_gain_config_t(     30,   -5.8,   31,    4, false, false ) ) -        ( twinrx_gain_config_t(     31,   -4.8,   31,    3, false, false ) ) -        ( twinrx_gain_config_t(     32,   -3.8,   31,    2, false, false ) ) -        ( twinrx_gain_config_t(     33,   -2.8,   31,    1, false, false ) ) -        ( twinrx_gain_config_t(     34,   -1.8,   31,    0, false, false ) ) -        ( twinrx_gain_config_t(     35,   -0.8,   30,    0, false, false ) ) -        ( twinrx_gain_config_t(     36,    0.2,   29,    0, false, false ) ) -        ( twinrx_gain_config_t(     37,    1.2,   28,    0, false, false ) ) -        ( twinrx_gain_config_t(     38,    2.2,   27,    0, false, false ) ) -        ( twinrx_gain_config_t(     39,    3.2,   26,    0, false, false ) ) -        ( twinrx_gain_config_t(     40,    4.2,   25,    0, false, false ) ) -        ( twinrx_gain_config_t(     41,    5.2,   24,    0, false, false ) ) -        ( twinrx_gain_config_t(     42,    6.2,   23,    0, false, false ) ) -        ( twinrx_gain_config_t(     43,    7.2,   22,    0, false, false ) ) -        ( twinrx_gain_config_t(     44,    8.2,   21,    0, false, false ) ) -        ( twinrx_gain_config_t(     45,    9.2,   20,    0, false, false ) ) -        ( twinrx_gain_config_t(     46,   10.2,   19,    0, false, false ) ) -        ( twinrx_gain_config_t(     47,   11.2,   18,    0, false, false ) ) -        ( twinrx_gain_config_t(     48,   12.2,   17,    0, false, false ) ) -        ( twinrx_gain_config_t(     49,   13.2,   16,    0, false, false ) ) -        ( twinrx_gain_config_t(     50,   14.2,   15,    0, false, false ) ) -        ( twinrx_gain_config_t(     51,   15.2,   14,    0, false, false ) ) -        ( twinrx_gain_config_t(     52,   16.2,   13,    0, false, false ) ) -        ( twinrx_gain_config_t(     53,   17.2,   12,    0, false, false ) ) -        ( twinrx_gain_config_t(     54,   18.2,   11,    0, false, false ) ) -        ( twinrx_gain_config_t(     55,   19.2,   10,    0, false, false ) ) -        ( twinrx_gain_config_t(     56,   20.2,    9,    0, false, false ) ) -        ( twinrx_gain_config_t(     57,   21.2,    8,    0, false, false ) ) -        ( twinrx_gain_config_t(     58,   22.2,    7,    0, false, false ) ) -        ( twinrx_gain_config_t(     59,   23.2,    6,    0, false, false ) ) -        ( twinrx_gain_config_t(     60,   24.2,    5,    0, false, false ) ) -        ( twinrx_gain_config_t(     61,   25.2,    4,    0, false, false ) ) -        ( twinrx_gain_config_t(     62,   26.2,    3,    0, false, false ) ) -        ( twinrx_gain_config_t(     63,   27.2,    2,    0, false, false ) ) -        ( twinrx_gain_config_t(     64,   28.2,    1,    0, false, false ) ) -        ( twinrx_gain_config_t(     65,   29.2,    0,    0, false, false ) ) -        ( twinrx_gain_config_t(     66,   30.4,    4,    9, false,  true ) ) -        ( twinrx_gain_config_t(     67,   31.4,    3,    9, false,  true ) ) -        ( twinrx_gain_config_t(     68,   32.4,    2,    9, false,  true ) ) -        ( twinrx_gain_config_t(     69,   33.4,    1,    9, false,  true ) ) -        ( twinrx_gain_config_t(     70,   34.4,    0,    9, false,  true ) ) -        ( twinrx_gain_config_t(     71,   35.4,    8,    0,  true, false ) ) -        ( twinrx_gain_config_t(     72,   36.4,    7,    0,  true, false ) ) -        ( twinrx_gain_config_t(     73,   37.4,    6,    0,  true, false ) ) -        ( twinrx_gain_config_t(     74,   38.4,    5,    0,  true, false ) ) -        ( twinrx_gain_config_t(     75,   39.4,    4,    0,  true, false ) ) -        ( twinrx_gain_config_t(     76,   40.4,    3,    0,  true, false ) ) -        ( twinrx_gain_config_t(     77,   41.4,    2,    0,  true, false ) ) -        ( twinrx_gain_config_t(     78,   42.4,    1,    0,  true, false ) ) -        ( twinrx_gain_config_t(     79,   43.4,    0,    0,  true, false ) ) -        ( twinrx_gain_config_t(     80,   44.6,    4,    9,  true,  true ) ) -        ( twinrx_gain_config_t(     81,   45.6,    4,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     82,   46.6,    3,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     83,   47.6,    2,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     84,   48.6,    1,    8,  true,  true ) ) -        ( twinrx_gain_config_t(     85,   49.6,    1,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     86,   50.6,    0,    7,  true,  true ) ) -        ( twinrx_gain_config_t(     87,   51.6,    0,    6,  true,  true ) ) -        ( twinrx_gain_config_t(     88,   52.6,    0,    5,  true,  true ) ) -        ( twinrx_gain_config_t(     89,   53.6,    0,    4,  true,  true ) ) -        ( twinrx_gain_config_t(     90,   54.6,    0,    3,  true,  true ) ) -        ( twinrx_gain_config_t(     91,   55.6,    0,    2,  true,  true ) ) -        ( twinrx_gain_config_t(     92,   56.6,    0,    1,  true,  true ) ) -        ( twinrx_gain_config_t(     93,   57.6,    0,    0,  true,  true ) ) -; +        twinrx_gain_config_t(      0,  -32.8,   31,   31, false, false ), +        twinrx_gain_config_t(      1,  -32.8,   31,   31, false, false ), +        twinrx_gain_config_t(      2,  -32.8,   31,   31, false, false ), +        twinrx_gain_config_t(      3,  -32.8,   31,   31, false, false ), +        twinrx_gain_config_t(      4,  -31.8,   31,   30, false, false ), +        twinrx_gain_config_t(      5,  -30.8,   31,   29, false, false ), +        twinrx_gain_config_t(      6,  -29.8,   31,   28, false, false ), +        twinrx_gain_config_t(      7,  -28.8,   31,   27, false, false ), +        twinrx_gain_config_t(      8,  -27.8,   31,   26, false, false ), +        twinrx_gain_config_t(      9,  -26.8,   31,   25, false, false ), +        twinrx_gain_config_t(     10,  -25.8,   31,   24, false, false ), +        twinrx_gain_config_t(     11,  -24.8,   31,   23, false, false ), +        twinrx_gain_config_t(     12,  -23.8,   31,   22, false, false ), +        twinrx_gain_config_t(     13,  -22.8,   31,   21, false, false ), +        twinrx_gain_config_t(     14,  -21.8,   31,   20, false, false ), +        twinrx_gain_config_t(     15,  -20.8,   31,   19, false, false ), +        twinrx_gain_config_t(     16,  -19.8,   31,   18, false, false ), +        twinrx_gain_config_t(     17,  -18.8,   31,   17, false, false ), +        twinrx_gain_config_t(     18,  -17.8,   31,   16, false, false ), +        twinrx_gain_config_t(     19,  -16.8,   31,   15, false, false ), +        twinrx_gain_config_t(     20,  -15.8,   31,   14, false, false ), +        twinrx_gain_config_t(     21,  -14.8,   31,   13, false, false ), +        twinrx_gain_config_t(     22,  -13.8,   31,   12, false, false ), +        twinrx_gain_config_t(     23,  -12.8,   31,   11, false, false ), +        twinrx_gain_config_t(     24,  -11.8,   31,   10, false, false ), +        twinrx_gain_config_t(     25,  -10.8,   31,    9, false, false ), +        twinrx_gain_config_t(     26,   -9.8,   31,    8, false, false ), +        twinrx_gain_config_t(     27,   -8.8,   31,    7, false, false ), +        twinrx_gain_config_t(     28,   -7.8,   31,    6, false, false ), +        twinrx_gain_config_t(     29,   -6.8,   31,    5, false, false ), +        twinrx_gain_config_t(     30,   -5.8,   31,    4, false, false ), +        twinrx_gain_config_t(     31,   -4.8,   31,    3, false, false ), +        twinrx_gain_config_t(     32,   -3.8,   31,    2, false, false ), +        twinrx_gain_config_t(     33,   -2.8,   31,    1, false, false ), +        twinrx_gain_config_t(     34,   -1.8,   31,    0, false, false ), +        twinrx_gain_config_t(     35,   -0.8,   30,    0, false, false ), +        twinrx_gain_config_t(     36,    0.2,   29,    0, false, false ), +        twinrx_gain_config_t(     37,    1.2,   28,    0, false, false ), +        twinrx_gain_config_t(     38,    2.2,   27,    0, false, false ), +        twinrx_gain_config_t(     39,    3.2,   26,    0, false, false ), +        twinrx_gain_config_t(     40,    4.2,   25,    0, false, false ), +        twinrx_gain_config_t(     41,    5.2,   24,    0, false, false ), +        twinrx_gain_config_t(     42,    6.2,   23,    0, false, false ), +        twinrx_gain_config_t(     43,    7.2,   22,    0, false, false ), +        twinrx_gain_config_t(     44,    8.2,   21,    0, false, false ), +        twinrx_gain_config_t(     45,    9.2,   20,    0, false, false ), +        twinrx_gain_config_t(     46,   10.2,   19,    0, false, false ), +        twinrx_gain_config_t(     47,   11.2,   18,    0, false, false ), +        twinrx_gain_config_t(     48,   12.2,   17,    0, false, false ), +        twinrx_gain_config_t(     49,   13.2,   16,    0, false, false ), +        twinrx_gain_config_t(     50,   14.2,   15,    0, false, false ), +        twinrx_gain_config_t(     51,   15.2,   14,    0, false, false ), +        twinrx_gain_config_t(     52,   16.2,   13,    0, false, false ), +        twinrx_gain_config_t(     53,   17.2,   12,    0, false, false ), +        twinrx_gain_config_t(     54,   18.2,   11,    0, false, false ), +        twinrx_gain_config_t(     55,   19.2,   10,    0, false, false ), +        twinrx_gain_config_t(     56,   20.2,    9,    0, false, false ), +        twinrx_gain_config_t(     57,   21.2,    8,    0, false, false ), +        twinrx_gain_config_t(     58,   22.2,    7,    0, false, false ), +        twinrx_gain_config_t(     59,   23.2,    6,    0, false, false ), +        twinrx_gain_config_t(     60,   24.2,    5,    0, false, false ), +        twinrx_gain_config_t(     61,   25.2,    4,    0, false, false ), +        twinrx_gain_config_t(     62,   26.2,    3,    0, false, false ), +        twinrx_gain_config_t(     63,   27.2,    2,    0, false, false ), +        twinrx_gain_config_t(     64,   28.2,    1,    0, false, false ), +        twinrx_gain_config_t(     65,   29.2,    0,    0, false, false ), +        twinrx_gain_config_t(     66,   30.4,    4,    9, false,  true ), +        twinrx_gain_config_t(     67,   31.4,    3,    9, false,  true ), +        twinrx_gain_config_t(     68,   32.4,    2,    9, false,  true ), +        twinrx_gain_config_t(     69,   33.4,    1,    9, false,  true ), +        twinrx_gain_config_t(     70,   34.4,    0,    9, false,  true ), +        twinrx_gain_config_t(     71,   35.4,    8,    0,  true, false ), +        twinrx_gain_config_t(     72,   36.4,    7,    0,  true, false ), +        twinrx_gain_config_t(     73,   37.4,    6,    0,  true, false ), +        twinrx_gain_config_t(     74,   38.4,    5,    0,  true, false ), +        twinrx_gain_config_t(     75,   39.4,    4,    0,  true, false ), +        twinrx_gain_config_t(     76,   40.4,    3,    0,  true, false ), +        twinrx_gain_config_t(     77,   41.4,    2,    0,  true, false ), +        twinrx_gain_config_t(     78,   42.4,    1,    0,  true, false ), +        twinrx_gain_config_t(     79,   43.4,    0,    0,  true, false ), +        twinrx_gain_config_t(     80,   44.6,    4,    9,  true,  true ), +        twinrx_gain_config_t(     81,   45.6,    4,    8,  true,  true ), +        twinrx_gain_config_t(     82,   46.6,    3,    8,  true,  true ), +        twinrx_gain_config_t(     83,   47.6,    2,    8,  true,  true ), +        twinrx_gain_config_t(     84,   48.6,    1,    8,  true,  true ), +        twinrx_gain_config_t(     85,   49.6,    1,    7,  true,  true ), +        twinrx_gain_config_t(     86,   50.6,    0,    7,  true,  true ), +        twinrx_gain_config_t(     87,   51.6,    0,    6,  true,  true ), +        twinrx_gain_config_t(     88,   52.6,    0,    5,  true,  true ), +        twinrx_gain_config_t(     89,   53.6,    0,    4,  true,  true ), +        twinrx_gain_config_t(     90,   54.6,    0,    3,  true,  true ), +        twinrx_gain_config_t(     91,   55.6,    0,    2,  true,  true ), +        twinrx_gain_config_t(     92,   56.6,    0,    1,  true,  true ), +        twinrx_gain_config_t(     93,   57.6,    0,    0,  true,  true ), +};  const twinrx_gain_table twinrx_gain_table::lookup_table  ( diff --git a/host/lib/usrp/dboard_manager.cpp b/host/lib/usrp/dboard_manager.cpp index a59e7ad19..b920bfdf9 100644 --- a/host/lib/usrp/dboard_manager.cpp +++ b/host/lib/usrp/dboard_manager.cpp @@ -465,10 +465,10 @@ dboard_manager_impl::~dboard_manager_impl(void){UHD_SAFE_CALL(  void dboard_manager_impl::set_nice_dboard_if(void){      //make a list of possible unit types -    std::vector<dboard_iface::unit_t> units = boost::assign::list_of -        (dboard_iface::UNIT_RX) -        (dboard_iface::UNIT_TX) -    ; +    const std::vector<dboard_iface::unit_t> units{ +        dboard_iface::UNIT_RX, +        dboard_iface::UNIT_TX +    };      //set nice settings on each unit      for(dboard_iface::unit_t unit:  units){ diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index f030108cc..67803bec6 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -11,8 +11,6 @@  #include <uhd/exception.hpp>  #include <uhd/types/sensors.hpp>  #include <boost/algorithm/string.hpp> -#include <boost/assign/list_of.hpp> -#include <stdint.h>  #include <boost/thread/thread.hpp>  #include <boost/tokenizer.hpp>  #include <boost/format.hpp> @@ -24,6 +22,7 @@  #include <string>  #include <thread>  #include <chrono> +#include <stdint.h>  using namespace uhd;  using namespace boost::posix_time; @@ -137,7 +136,7 @@ private:          return;      } -    const std::list<std::string> keys = boost::assign::list_of("GPGGA")("GPRMC")("SERVO"); +    const std::list<std::string> keys{"GPGGA", "GPRMC", "SERVO"};      static const boost::regex servo_regex("^\\d\\d-\\d\\d-\\d\\d.*$");      static const boost::regex gp_msg_regex("^\\$GP.*,\\*[0-9A-F]{2}$");      std::map<std::string,std::string> msgs; @@ -266,13 +265,14 @@ public:    //return a list of supported sensors    std::vector<std::string> get_sensors(void) { -    std::vector<std::string> ret = boost::assign::list_of -        ("gps_gpgga") -        ("gps_gprmc") -        ("gps_time") -        ("gps_locked") -        ("gps_servo"); -    return ret; +      std::vector<std::string> ret{ +          "gps_gpgga", +          "gps_gprmc", +          "gps_time", +          "gps_locked", +          "gps_servo" +      }; +      return ret;    }    uhd::sensor_value_t get_sensor(std::string key) { diff --git a/host/lib/usrp/gpsd_iface.cpp b/host/lib/usrp/gpsd_iface.cpp index 49880c8f7..6b47b6be5 100644 --- a/host/lib/usrp/gpsd_iface.cpp +++ b/host/lib/usrp/gpsd_iface.cpp @@ -6,12 +6,11 @@  //  #include <cmath> +#include <stdint.h>  #include <gps.h> -#include <boost/assign/list_of.hpp>  #include <boost/bind.hpp> -#include <stdint.h>  #include "boost/date_time/gregorian/gregorian.hpp"  #include <boost/format.hpp>  #include <boost/thread/shared_mutex.hpp> @@ -53,9 +52,13 @@ public:          boost::thread t(boost::bind(&gpsd_iface_impl::_thread_fcn ,this));          _bthread.swap(t); - -        _sensors = boost::assign::list_of<std::string>("gps_locked")("gps_time") \ -            ("gps_position")("gps_gpgga")("gps_gprmc").to_container(_sensors); +        _sensors = { +            "gps_locked", +            "gps_time", +            "gps_position", +            "gps_gpgga", +            "gps_gprmc" +        };      }      virtual ~gpsd_iface_impl(void) diff --git a/host/lib/usrp/n230/n230_impl.cpp b/host/lib/usrp/n230/n230_impl.cpp index 0595ee29d..854585ae2 100644 --- a/host/lib/usrp/n230/n230_impl.cpp +++ b/host/lib/usrp/n230/n230_impl.cpp @@ -32,7 +32,6 @@  #include <boost/lexical_cast.hpp>  #include <boost/bind.hpp>  #include <boost/algorithm/string.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/asio/ip/address_v4.hpp>  #include <boost/asio.hpp> //used for htonl and ntohl  #include <boost/make_shared.hpp> @@ -342,7 +341,7 @@ void n230_impl::_initialize_property_tree(const fs_path& mb_path)          .add_coerced_subscriber(boost::bind(&n230_impl::_check_time_source, this, _1))          .add_coerced_subscriber(boost::bind(&n230_clk_pps_ctrl::set_pps_source, _resource_mgr->get_clk_pps_ctrl_sptr(), _1))          .set(n230::DEFAULT_TIME_SRC); -    static const std::vector<std::string> time_sources = boost::assign::list_of("none")("external")("gpsdo"); +    const std::vector<std::string> time_sources{"none", "external", "gpsdo"};      _tree->create<std::vector<std::string> >(mb_path / "time_source" / "options")          .set(time_sources); @@ -351,7 +350,7 @@ void n230_impl::_initialize_property_tree(const fs_path& mb_path)          .add_coerced_subscriber(boost::bind(&n230_impl::_check_clock_source, this, _1))          .add_coerced_subscriber(boost::bind(&n230_clk_pps_ctrl::set_clock_source, _resource_mgr->get_clk_pps_ctrl_sptr(), _1))          .set(n230::DEFAULT_CLOCK_SRC); -    static const std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external")("gpsdo"); +    const std::vector<std::string> clock_sources{"internal", "external", "gpsdo"};      _tree->create<std::vector<std::string> >(mb_path / "clock_source" / "options")          .set(clock_sources);      _tree->create<sensor_value_t>(mb_path / "sensors" / "ref_locked") @@ -524,8 +523,7 @@ void n230_impl::_initialize_radio_properties(const fs_path& mb_path, size_t inst          .set_publisher(boost::bind(&tx_dsp_core_3000::get_freq_range, perif.duc));      //RF Frontend Interfacing -    static const std::vector<direction_t> data_directions = boost::assign::list_of(RX_DIRECTION)(TX_DIRECTION); -    for(direction_t direction:  data_directions) { +    for (direction_t direction : std::vector<direction_t>{RX_DIRECTION, TX_DIRECTION}) {          const std::string dir_str = (direction == RX_DIRECTION) ? "rx" : "tx";          const std::string key = boost::to_upper_copy(dir_str) + str(boost::format("%u") % (instance + 1));          const fs_path rf_fe_path = mb_path / "dboards" / "A" / (dir_str + "_frontends") / ((instance==0)?"A":"B"); @@ -539,17 +537,15 @@ void n230_impl::_initialize_radio_properties(const fs_path& mb_path, size_t inst          //Setup antenna stuff          if (key[0] == 'R') { -            static const std::vector<std::string> ants = boost::assign::list_of("TX/RX")("RX2");              _tree->create<std::vector<std::string> >(rf_fe_path / "antenna" / "options") -                .set(ants); +                .set({"TX/RX", "RX2"});              _tree->create<std::string>(rf_fe_path / "antenna" / "value")                  .add_coerced_subscriber(boost::bind(&n230_frontend_ctrl::set_antenna_sel, _resource_mgr->get_frontend_ctrl_sptr(), instance, _1))                  .set("RX2");          }          if (key[0] == 'T') { -            static const std::vector<std::string> ants(1, "TX/RX");              _tree->create<std::vector<std::string> >(rf_fe_path / "antenna" / "options") -                .set(ants); +                .set({"TX/RX"});              _tree->create<std::string>(rf_fe_path / "antenna" / "value")                  .set("TX/RX");          } diff --git a/host/lib/usrp/usrp1/usrp1_impl.cpp b/host/lib/usrp/usrp1/usrp1_impl.cpp index 9dee15049..2bd573652 100644 --- a/host/lib/usrp/usrp1/usrp1_impl.cpp +++ b/host/lib/usrp/usrp1/usrp1_impl.cpp @@ -15,7 +15,6 @@  #include <uhd/utils/static.hpp>  #include <uhd/utils/paths.hpp>  #include <boost/format.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/filesystem.hpp>  #include <boost/thread/thread.hpp>  #include <boost/lexical_cast.hpp> @@ -30,9 +29,10 @@ const uint16_t USRP1_VENDOR_ID  = 0xfffe;  const uint16_t USRP1_PRODUCT_ID = 0x0002;  static const boost::posix_time::milliseconds REENUMERATION_TIMEOUT_MS(3000); -const std::vector<usrp1_impl::dboard_slot_t> usrp1_impl::_dboard_slots = boost::assign::list_of -    (usrp1_impl::DBOARD_SLOT_A)(usrp1_impl::DBOARD_SLOT_B) -; +const std::vector<usrp1_impl::dboard_slot_t> usrp1_impl::_dboard_slots{ +    usrp1_impl::DBOARD_SLOT_A, +    usrp1_impl::DBOARD_SLOT_B +};  /***********************************************************************   * Discovery diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp index d6ab11969..1be4c7339 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.cpp +++ b/host/lib/usrp/usrp2/usrp2_impl.cpp @@ -19,7 +19,6 @@  #include <uhd/utils/safe_call.hpp>  #include <boost/format.hpp>  #include <boost/bind.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/asio/ip/address_v4.hpp>  #include <boost/asio.hpp> //used for htonl and ntohl  #include <boost/thread.hpp> @@ -699,9 +698,12 @@ usrp2_impl::usrp2_impl(const device_addr_t &_device_addr) :          _tree->create<std::string>(mb_path / "clock_source/value")              .add_coerced_subscriber(boost::bind(&usrp2_impl::update_clock_source, this, mb, _1))              .set("internal"); -        std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external")("mimo"); -        if (_mbc[mb].gps and _mbc[mb].gps->gps_detected()) clock_sources.push_back("gpsdo"); -        _tree->create<std::vector<std::string> >(mb_path / "clock_source/options").set(clock_sources); +        std::vector<std::string> clock_sources{"internal", "external", "mimo"}; +        if (_mbc[mb].gps and _mbc[mb].gps->gps_detected()) { +            clock_sources.push_back("gpsdo"); +        } +        _tree->create<std::vector<std::string>>(mb_path / "clock_source/options") +            .set(clock_sources);          //plug timed commands into tree here          switch(_mbc[mb].iface->get_rev()){          case usrp2_iface::USRP_N200: diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp index cf1d9d7c2..453522249 100644 --- a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp +++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp @@ -18,7 +18,6 @@  #include <boost/algorithm/string.hpp>  #include <boost/make_shared.hpp>  #include <boost/date_time/posix_time/posix_time_io.hpp> -#include <boost/assign/list_of.hpp>  #include <chrono>  #include <thread> @@ -547,7 +546,7 @@ double x300_radio_ctrl_impl::get_output_samp_rate(size_t chan)  std::vector<std::string> x300_radio_ctrl_impl::get_gpio_banks() const  { -    std::vector<std::string> banks = boost::assign::list_of("RX")("TX"); +    std::vector<std::string> banks{"RX", "TX"};      // These pairs are the same, but RXA/TXA are from pre-rfnoc era and are kept for backward compat:      banks.push_back("RX"+_radio_slot);      banks.push_back("TX"+_radio_slot); @@ -626,10 +625,16 @@ void x300_radio_ctrl_impl::setup_radio(      static const size_t RX_EEPROM_ADDR  = 0x5;      static const size_t TX_EEPROM_ADDR  = 0x4;      static const size_t GDB_EEPROM_ADDR = 0x1; -    const static std::vector<size_t> EEPROM_ADDRS = -        boost::assign::list_of(RX_EEPROM_ADDR)(TX_EEPROM_ADDR)(GDB_EEPROM_ADDR); -    const static std::vector<std::string> EEPROM_PATHS = -        boost::assign::list_of("rx_eeprom")("tx_eeprom")("gdb_eeprom"); +    const static std::vector<size_t> EEPROM_ADDRS{ +        RX_EEPROM_ADDR, +        TX_EEPROM_ADDR, +        GDB_EEPROM_ADDR +    }; +    const static std::vector<std::string> EEPROM_PATHS{ +        "rx_eeprom", +        "tx_eeprom", +        "gdb_eeprom" +    };      const size_t DB_OFFSET = (_radio_slot == "A") ? 0x0 : 0x2;      const fs_path db_path = ("dboards" / _radio_slot); diff --git a/host/tests/blockdef_test.cpp b/host/tests/blockdef_test.cpp index dc0b40ea9..7779150be 100644 --- a/host/tests/blockdef_test.cpp +++ b/host/tests/blockdef_test.cpp @@ -8,7 +8,6 @@  #include <iostream>  #include <map>  #include <stdint.h> -#include <boost/assign/list_of.hpp>  #include <boost/test/unit_test.hpp>  #include <boost/format.hpp>  #include <uhd/rfnoc/blockdef.hpp> @@ -16,24 +15,25 @@  using namespace uhd::rfnoc;  BOOST_AUTO_TEST_CASE(test_lookup) { -    std::map<uint64_t, std::string> blocknames = boost::assign::list_of< std::pair<uint64_t, std::string> > -        (0,                  "NullSrcSink") -        (0xFF70000000000000, "FFT") -        (0xF112000000000001, "FIR") -        (0xF1F0000000000000, "FIFO") -        (0xD053000000000000, "Window") -        (0x5CC0000000000000, "SchmidlCox") -    ; - +    const std::map<uint64_t, std::string> blocknames{ +        {0,                  "NullSrcSink"}, +        {0xFF70000000000000, "FFT"}, +        {0xF112000000000001, "FIR"}, +        {0xF1F0000000000000, "FIFO"}, +        {0xD053000000000000, "Window"}, +        {0x5CC0000000000000, "SchmidlCox"} +    };      std::cout << blocknames.size() << std::endl; -    for (std::map<uint64_t, std::string>::iterator it = blocknames.begin(); it != blocknames.end(); ++it) { -        std::cout << "Testing " << it->second << " => " << str(boost::format("%016X") % it->first) << std::endl; -        blockdef::sptr block_definition = blockdef::make_from_noc_id(it->first); +    for (const auto block : blocknames) { +        std::cout << "Testing " << block.second +                  << " => " << str(boost::format("%016X") % block.first) +                  << std::endl; +        auto block_definition = blockdef::make_from_noc_id(block.first);          // If the previous function fails, it'll return a NULL pointer          BOOST_REQUIRE(block_definition);          BOOST_CHECK(block_definition->is_block()); -        BOOST_CHECK_EQUAL(block_definition->get_name(), it->second); +        BOOST_CHECK_EQUAL(block_definition->get_name(), block.second);      }  } diff --git a/host/tests/convert_test.cpp b/host/tests/convert_test.cpp index 1253b80d7..862e02073 100644 --- a/host/tests/convert_test.cpp +++ b/host/tests/convert_test.cpp @@ -8,7 +8,6 @@  #include <uhd/convert.hpp>  #include <boost/test/unit_test.hpp>  #include <stdint.h> -#include <boost/assign/list_of.hpp>  #include <complex>  #include <vector>  #include <cstdlib> @@ -128,13 +127,15 @@ static void test_convert_types_for_floats(      //make a list of all prio: best/generic combos      typedef std::pair<int, int> int_pair_t; -    std::vector<int_pair_t> prios = boost::assign::list_of -        (int_pair_t(0, 0)) (int_pair_t(-1, 0)) -        (int_pair_t(0, -1)) (int_pair_t(-1, -1)) -    ; +    const std::vector<int_pair_t> prios{ +        int_pair_t(0, 0), +        int_pair_t(-1, 0), +        int_pair_t(0, -1), +        int_pair_t(-1, -1) +    };      //loopback foreach prio combo (generic vs best) -    for(const int_pair_t &prio:  prios){ +    for (const auto &prio : prios) {          loopback(nsamps, in_id, out_id, input, output, prio.first, prio.second);          for (size_t i = 0; i < nsamps; i++){              MY_CHECK_CLOSE(input[i].real(), output[i].real(), value_type(1./(1 << 14))); diff --git a/host/tests/device3_test.cpp b/host/tests/device3_test.cpp index 3a7f7c6cb..eb29d560f 100644 --- a/host/tests/device3_test.cpp +++ b/host/tests/device3_test.cpp @@ -68,9 +68,9 @@ class pseudo_device3_impl : public uhd::device3          _tree->create<std::string>("/name").set("Test Pseudo-Device3");          // We can re-use this: -        std::map<size_t, ctrl_iface::sptr> ctrl_ifaces = boost::assign::map_list_of -            (0, ctrl_iface::sptr(new pseudo_ctrl_iface_impl())) -        ; +        std::map<size_t, ctrl_iface::sptr> ctrl_ifaces{ +            {0, ctrl_iface::sptr(new pseudo_ctrl_iface_impl())} +        };          // Add two block controls:          uhd::rfnoc::make_args_t make_args; diff --git a/host/tests/nocscript_expr_test.cpp b/host/tests/nocscript_expr_test.cpp index 68990ba56..19b4345c2 100644 --- a/host/tests/nocscript_expr_test.cpp +++ b/host/tests/nocscript_expr_test.cpp @@ -63,7 +63,7 @@ BOOST_AUTO_TEST_CASE(test_literals)      expression_literal literal_int_vec("[1, 2, 3]", expression::TYPE_INT_VECTOR);      BOOST_CHECK_EQUAL(literal_int_vec.infer_type(), expression::TYPE_INT_VECTOR); -    std::vector<int> test_data = boost::assign::list_of(1)(2)(3); +    std::vector<int> test_data{1, 2, 3};      std::vector<int> result = literal_int_vec.get_int_vector();      BOOST_CHECK_EQUAL_COLLECTIONS(test_data.begin(), test_data.end(),                                    result.begin(), result.end()); @@ -345,19 +345,9 @@ BOOST_AUTO_TEST_CASE(test_functable_mockup)      BOOST_CHECK_EQUAL(functable.get_type("ADD", two_double_args), expression::TYPE_DOUBLE);      BOOST_CHECK_EQUAL(functable.get_type("XOR", two_bool_args), expression::TYPE_BOOL); -    expression_container::expr_list_type add_args_int = -        boost::assign::list_of(E(2))(E(3)) -    ; -    expression_container::expr_list_type add_args_dbl = -        boost::assign::list_of -            (E(2.25)) -            (E(5.0)) -    ; -    expression_container::expr_list_type xor_args_bool = -        boost::assign::list_of -            (E(true)) -            (E(false)) -    ; +    expression_container::expr_list_type add_args_int{E(2), E(3)}; +    expression_container::expr_list_type add_args_dbl{E(2.25), E(5.0)}; +    expression_container::expr_list_type xor_args_bool{E(true), E(false)};      BOOST_CHECK_EQUAL(functable.eval("ADD", two_int_args, add_args_int), expression_literal(5));      BOOST_CHECK_EQUAL(functable.eval("ADD", two_double_args, add_args_dbl), expression_literal(7.25)); diff --git a/host/tests/nocscript_ftable_test.cpp b/host/tests/nocscript_ftable_test.cpp index 48303305c..99ac2231a 100644 --- a/host/tests/nocscript_ftable_test.cpp +++ b/host/tests/nocscript_ftable_test.cpp @@ -8,7 +8,6 @@  #include "../lib/rfnoc/nocscript/function_table.hpp"  #include <boost/test/unit_test.hpp>  #include <boost/test/floating_point_comparison.hpp> -#include <boost/assign/list_of.hpp>  #include <boost/bind.hpp>  #include <boost/make_shared.hpp>  #include <algorithm> @@ -28,9 +27,9 @@ BOOST_AUTO_TEST_CASE(test_basic_funcs)      BOOST_CHECK(ft->function_exists("FALSE"));      // Math -    expression_container::expr_list_type two_int_values = boost::assign::list_of(E(2))(E(3)); -    expression_container::expr_list_type two_int_values2 = boost::assign::list_of(E(3))(E(2)); -    expression_container::expr_list_type two_double_values = boost::assign::list_of(E(2.0))(E(3.0)); +    expression_container::expr_list_type two_int_values{E(2), E(3)}; +    expression_container::expr_list_type two_int_values2{E(3), E(2)}; +    expression_container::expr_list_type two_double_values{E(2.0), E(3.0)};      BOOST_REQUIRE_EQUAL(ft->get_type("ADD", two_int_args), expression::TYPE_INT);      expression_literal e_add = ft->eval("ADD", two_int_args, two_int_values); @@ -67,7 +66,7 @@ BOOST_AUTO_TEST_CASE(test_basic_funcs)      BOOST_REQUIRE_EQUAL(e_ge.infer_type(), expression::TYPE_BOOL);      BOOST_CHECK_EQUAL(e_ge.get_bool(), false); -    expression_container::expr_list_type sixty_four = boost::assign::list_of(E(64)); +    expression_container::expr_list_type sixty_four{E(64)};      expression_literal e_pwr2 = ft->eval("IS_PWR_OF_2", one_int_arg, sixty_four);      BOOST_REQUIRE_EQUAL(e_pwr2.infer_type(), expression::TYPE_BOOL);      BOOST_CHECK_EQUAL(e_pwr2.get_bool(), true); @@ -76,8 +75,8 @@ BOOST_AUTO_TEST_CASE(test_basic_funcs)      BOOST_CHECK_EQUAL(e_log2.get_int(), 6);      // Boolean Logic -    expression_container::expr_list_type e_true = boost::assign::list_of(E(true)); -    expression_container::expr_list_type e_false = boost::assign::list_of(E(false)); +    expression_container::expr_list_type e_true{E(true)}; +    expression_container::expr_list_type e_false{E(false)};      BOOST_CHECK(ft->eval("TRUE", no_args, empty_arg_list).to_bool());      BOOST_CHECK(ft->eval("TRUE", no_args, empty_arg_list).get_bool());      BOOST_CHECK_EQUAL(ft->eval("FALSE", no_args, empty_arg_list).to_bool(), false); @@ -86,7 +85,7 @@ BOOST_AUTO_TEST_CASE(test_basic_funcs)      // Control      std::cout << "Checking ~1s sleep until... "; -    expression_container::expr_list_type e_sleeptime = boost::assign::list_of(E(.999)); +    expression_container::expr_list_type e_sleeptime{E(.999)};      BOOST_CHECK(ft->eval("SLEEP", one_double_arg, e_sleeptime).get_bool());      std::cout << "Now." << std::endl;  } @@ -103,7 +102,10 @@ BOOST_AUTO_TEST_CASE(test_add_funcs)      BOOST_CHECK(not ft->function_exists("ADD_PLUS_2")); -    expression_function::argtype_list_type add_int_args = boost::assign::list_of(expression::TYPE_INT)(expression::TYPE_INT); +    expression_function::argtype_list_type add_int_args{ +        expression::TYPE_INT, +        expression::TYPE_INT +    };      ft->register_function(              "ADD_PLUS_2",              boost::bind(&add_plus2_int, _1), @@ -114,7 +116,7 @@ BOOST_AUTO_TEST_CASE(test_add_funcs)      BOOST_CHECK(ft->function_exists("ADD_PLUS_2"));      BOOST_CHECK(ft->function_exists("ADD_PLUS_2", add_int_args)); -    expression_container::expr_list_type add_int_values = boost::assign::list_of(E(2))(E(3)); +    expression_container::expr_list_type add_int_values{E(2), E(3)};      expression_literal e = ft->eval("ADD_PLUS_2", two_int_args, add_int_values);      BOOST_REQUIRE_EQUAL(e.infer_type(), expression::TYPE_INT);      BOOST_CHECK_EQUAL(e.get_int(), 7); @@ -219,7 +221,10 @@ BOOST_AUTO_TEST_CASE(test_bitwise_funcs)      // Bitwise Math      int int_value1 = 0x2;      int int_value2 = 0x3; -    expression_container::expr_list_type two_int_values = boost::assign::list_of(E(int_value1))(E(int_value2)); +    expression_container::expr_list_type two_int_values{ +        E(int_value1), +        E(int_value2) +    };      BOOST_REQUIRE_EQUAL(ft->get_type("SHIFT_RIGHT", two_int_args), expression::TYPE_INT);      expression_literal e_shift_right = ft->eval("SHIFT_RIGHT", two_int_args, two_int_values);  | 
