Coding style fixed
authoriamine@localhost.localdomain
Tue Nov 10 15:05:38 2009 +0100 (3 months ago)
changeset 45828f1b572ae1f4
parent 4581 ce157617cba9
child 4583 aed3bbf8426f
Coding style fixed
examples/wimax/wimax-multicast.cc
src/devices/wimax/bandwidth-manager.h
src/devices/wimax/bs-link-manager.cc
src/devices/wimax/bs-link-manager.h
src/devices/wimax/bs-scheduler-rtps.cc
src/devices/wimax/bs-scheduler-rtps.h
src/devices/wimax/bs-scheduler-simple.cc
src/devices/wimax/bs-scheduler-simple.h
src/devices/wimax/bs-scheduler.cc
src/devices/wimax/bs-scheduler.h
src/devices/wimax/burst-profile-manager.cc
src/devices/wimax/burst-profile-manager.h
src/devices/wimax/connection-identifier-factory.cc
src/devices/wimax/connection-identifier-factory.h
src/devices/wimax/connection-identifier.cc
src/devices/wimax/connection-identifier.h
src/devices/wimax/connection-manager.cc
src/devices/wimax/connection-manager.h
src/devices/wimax/cost231-propagation-model.cc
src/devices/wimax/cost231-propagation-model.h
src/devices/wimax/crc8.cc
src/devices/wimax/crc8.h
src/devices/wimax/default-traces.h
src/devices/wimax/dl-mac-messages.cc
src/devices/wimax/dl-mac-messages.h
src/devices/wimax/ipcs-bind-parameter-manager.cc
src/devices/wimax/ipcs-bind-parameter-manager.h
src/devices/wimax/ipcs-bs-bind-parameter-record.cc
src/devices/wimax/ipcs-bs-bind-parameter-record.h
src/devices/wimax/ipcs-bs-packet-classifier.cc
src/devices/wimax/ipcs-bs-packet-classifier.h
src/devices/wimax/ipcs-classifier-record.cc
src/devices/wimax/ipcs-classifier-record.h
src/devices/wimax/ipcs-ss-packet-classifier.cc
src/devices/wimax/ipcs-ss-packet-classifier.h
src/devices/wimax/mac-2-mac.cc
src/devices/wimax/mac-2-mac.h
src/devices/wimax/mac-address-packet-classifier.cc
src/devices/wimax/mac-address-packet-classifier.h
src/devices/wimax/mac-messages.cc
src/devices/wimax/mac-messages.h
src/devices/wimax/ofdm-downlink-frame-prefix.cc
src/devices/wimax/ofdm-downlink-frame-prefix.h
src/devices/wimax/packet-burst.cc
src/devices/wimax/packet-burst.h
src/devices/wimax/packet-classifier.cc
src/devices/wimax/packet-classifier.h
src/devices/wimax/propagation.cc
src/devices/wimax/propagation.h
src/devices/wimax/qos-parameter-set.cc
src/devices/wimax/qos-parameter-set.h
src/devices/wimax/send-params.cc
src/devices/wimax/send-params.h
src/devices/wimax/service-flow-manager.cc
src/devices/wimax/service-flow-manager.h
src/devices/wimax/service-flow-record.cc
src/devices/wimax/service-flow-record.h
src/devices/wimax/service-flow.cc
src/devices/wimax/service-flow.h
src/devices/wimax/simple-ofdm-send-param.cc
src/devices/wimax/simple-ofdm-send-param.h
src/devices/wimax/simple-ofdm-wimax-channel.cc
src/devices/wimax/simple-ofdm-wimax-channel.h
src/devices/wimax/simple-ofdm-wimax-phy.h
src/devices/wimax/snr-to-block-error-rate-manager.cc
src/devices/wimax/snr-to-block-error-rate-manager.h
src/devices/wimax/snr-to-block-error-rate-record.cc
src/devices/wimax/snr-to-block-error-rate-record.h
src/devices/wimax/ss-link-manager.cc
src/devices/wimax/ss-link-manager.h
src/devices/wimax/ss-manager.cc
src/devices/wimax/ss-manager.h
src/devices/wimax/ss-record.cc
src/devices/wimax/ss-record.h
src/devices/wimax/ss-scheduler.cc
src/devices/wimax/ss-scheduler.h
src/devices/wimax/tlvs.cc
src/devices/wimax/tlvs.h
src/devices/wimax/ul-job.cc
src/devices/wimax/ul-job.h
src/devices/wimax/ul-mac-messages.cc
src/devices/wimax/ul-mac-messages.h
src/devices/wimax/uplink-scheduler-mbqos.cc
src/devices/wimax/uplink-scheduler-mbqos.h
src/devices/wimax/uplink-scheduler-rtps.cc
src/devices/wimax/uplink-scheduler-rtps.h
src/devices/wimax/uplink-scheduler-simple.cc
src/devices/wimax/uplink-scheduler-simple.h
src/devices/wimax/uplink-scheduler.cc
src/devices/wimax/uplink-scheduler.h
src/devices/wimax/wimax-bs-mac-test.cc
src/devices/wimax/wimax-bs-net-device.cc
src/devices/wimax/wimax-bs-net-device.h
src/devices/wimax/wimax-channel.cc
src/devices/wimax/wimax-channel.h
src/devices/wimax/wimax-connection.cc
src/devices/wimax/wimax-connection.h
src/devices/wimax/wimax-mac-header.cc
src/devices/wimax/wimax-mac-header.h
src/devices/wimax/wimax-mac-queue.cc
src/devices/wimax/wimax-mac-queue.h
src/devices/wimax/wimax-net-device.cc
src/devices/wimax/wimax-net-device.h
src/devices/wimax/wimax-phy-test.cc
src/devices/wimax/wimax-phy.cc
src/devices/wimax/wimax-phy.h
src/devices/wimax/wimax-ss-mac-test.cc
src/devices/wimax/wimax-ss-net-device.cc
src/devices/wimax/wimax-ss-net-device.h
src/devices/wimax/wimax.h
src/helper/trace-based-streamer-helper.cc
src/helper/trace-based-streamer-helper.h
src/helper/udp-client-server-helper.cc
src/helper/udp-client-server-helper.h
src/helper/udp-helper.cc
src/helper/udp-helper.h
src/helper/wimax-helper.cc
src/helper/wimax-helper.h
src/helper/wscript
     1.1 --- a/examples/wimax/wimax-multicast.cc	Tue Nov 10 14:36:17 2009 +0100
     1.2 +++ b/examples/wimax/wimax-multicast.cc	Tue Nov 10 15:05:38 2009 +0100
     1.3 @@ -71,8 +71,7 @@
     1.4  #define MAXDIST 10 //km
     1.5  using namespace ns3;
     1.6  
     1.7 -int
     1.8 -main (int argc, char *argv[])
     1.9 +int main (int argc, char *argv[])
    1.10  {
    1.11  
    1.12    NodeContainer ssNodes;
    1.13 @@ -291,7 +290,7 @@
    1.14    for (int i = 0; i < nbSS; i++)
    1.15      {
    1.16        UGSparameterSet[i] = wimax.CreateUgsParameterSet (5000000, 1000, 100);
    1.17 -     //setup a multicast connection between the BS and the SSs
    1.18 +      //setup a multicast connection between the BS and the SSs
    1.19        wimax.BsSetupMulticastConnection (bs, multicastSource, multicastGroup, 0,
    1.20            multicast_port, 17, UGSparameterSet[i],
    1.21            QoSParameterSet::SCHEDULING_TYPE_UGS,
     2.1 --- a/src/devices/wimax/bandwidth-manager.h	Tue Nov 10 14:36:17 2009 +0100
     2.2 +++ b/src/devices/wimax/bandwidth-manager.h	Tue Nov 10 15:05:38 2009 +0100
     2.3 @@ -31,7 +31,8 @@
     2.4   The same bandwidth manager class serves both for BS and SS though some functions are exclusive to only one of them.
     2.5   */
     2.6  
     2.7 -namespace ns3 {
     2.8 +namespace ns3
     2.9 +{
    2.10  
    2.11  class SSRecord;
    2.12  class ServiceFlow;
    2.13 @@ -55,19 +56,14 @@
    2.14    BandwidthManager (Ptr<WimaxNetDevice> device);
    2.15    ~BandwidthManager (void);
    2.16  
    2.17 -  uint32_t
    2.18 -  CalculateAllocationSize (const SSRecord *ssRecord,
    2.19 +  uint32_t CalculateAllocationSize (const SSRecord *ssRecord,
    2.20        const ServiceFlow *serviceFlow);
    2.21    ServiceFlow*
    2.22    SelectFlowForRequest (uint32_t &bytesToRequest);
    2.23 -  void
    2.24 -  SendBandwidthRequest (uint8_t uiuc, uint16_t allocationSize);
    2.25 -  void
    2.26 -  ProcessBandwidthRequest (const BandwidthRequestHeader &bwRequestHdr);
    2.27 -  void
    2.28 -  SetSubframeRatio (void);
    2.29 -  uint32_t
    2.30 -  GetSymbolsPerFrameAllocated (void);
    2.31 +  void SendBandwidthRequest (uint8_t uiuc, uint16_t allocationSize);
    2.32 +  void ProcessBandwidthRequest (const BandwidthRequestHeader &bwRequestHdr);
    2.33 +  void SetSubframeRatio (void);
    2.34 +  uint32_t GetSymbolsPerFrameAllocated (void);
    2.35  private:
    2.36    Ptr<WimaxNetDevice> m_device;
    2.37  
     3.1 --- a/src/devices/wimax/bs-link-manager.cc	Tue Nov 10 14:36:17 2009 +0100
     3.2 +++ b/src/devices/wimax/bs-link-manager.cc	Tue Nov 10 15:05:38 2009 +0100
     3.3 @@ -32,7 +32,8 @@
     3.4  
     3.5  NS_LOG_COMPONENT_DEFINE ("BSLinkManager");
     3.6  
     3.7 -namespace ns3 {
     3.8 +namespace ns3
     3.9 +{
    3.10  
    3.11  BSLinkManager::BSLinkManager (Ptr<WimaxBaseStationNetDevice> bs) :
    3.12    m_bs (bs), m_signalQuality (10), m_signalQualityThreshold (10) //arbitrary value
    3.13 @@ -45,8 +46,7 @@
    3.14    m_bs = 0;
    3.15  }
    3.16  
    3.17 -uint8_t
    3.18 -BSLinkManager::CalculateRangingOppsToAllocate (void)
    3.19 +uint8_t BSLinkManager::CalculateRangingOppsToAllocate (void)
    3.20  {
    3.21    //randomly selecting TOs up to 10, shall actually be decided by scheduler
    3.22    return rand () % 8 + 2;
    3.23 @@ -55,8 +55,7 @@
    3.24  /*
    3.25   * Function mainly to avoid duplicate code in DoReceive ()
    3.26   */
    3.27 -void
    3.28 -BSLinkManager::ProcessRangingRequest (Ptr<ConnectionIdentifier> cid,
    3.29 +void BSLinkManager::ProcessRangingRequest (Ptr<ConnectionIdentifier> cid,
    3.30      RngReq rngreq)
    3.31  {
    3.32    NS_ASSERT_MSG (m_bs->GetState ()
    3.33 @@ -80,8 +79,7 @@
    3.34          irIntervalBoundary = m_bs->GetUlSubframeStartTime () + Seconds (
    3.35              m_bs->GetRangReqOppSize ()
    3.36                  * m_bs->GetSymbolDuration ().GetSeconds ());
    3.37 -    }
    3.38 -  else
    3.39 +    } else
    3.40      {
    3.41        NS_ASSERT_MSG (
    3.42            m_bs->GetUplinkScheduler ()->GetIsIrIntrvlAllocated (),
    3.43 @@ -102,8 +100,8 @@
    3.44    PerformRanging (cid, rngreq);
    3.45  }
    3.46  
    3.47 -void
    3.48 -BSLinkManager::PerformRanging (Ptr<ConnectionIdentifier> cid, RngReq rngreq)
    3.49 +void BSLinkManager::PerformRanging (Ptr<ConnectionIdentifier> cid,
    3.50 +    RngReq rngreq)
    3.51  {
    3.52    NS_ASSERT_MSG (m_bs->GetCidType (cid)
    3.53        == WimaxConnection::CONNECTION_TYPE_INITIAL_RANGING || m_bs->GetCidType (
    3.54 @@ -135,8 +133,7 @@
    3.55        SetParametersToAdjust (&rngrsp);
    3.56        rngrsp.SetRangStatus (WimaxNetDevice::RANGING_STATUS_CONTINUE); //see Figure 64
    3.57        ScheduleRngRspMessage (cid, &rngrsp);
    3.58 -    }
    3.59 -  else
    3.60 +    } else
    3.61      {
    3.62        if (m_bs->GetCidType (cid)
    3.63            == WimaxConnection::CONNECTION_TYPE_INITIAL_RANGING)
    3.64 @@ -147,8 +144,7 @@
    3.65      }
    3.66  }
    3.67  
    3.68 -void
    3.69 -BSLinkManager::PerformInitialRanging (Ptr<ConnectionIdentifier> cid,
    3.70 +void BSLinkManager::PerformInitialRanging (Ptr<ConnectionIdentifier> cid,
    3.71      RngReq *rngreq, RngRsp *rngrsp)
    3.72  {
    3.73  
    3.74 @@ -158,8 +154,7 @@
    3.75      {
    3.76        ssRecord = m_bs->GetSSManager ()->GetSSRecord (rngreq->GetMacAddress ());
    3.77        //if this fails it would mean the RNG-RSP with success status was not received by the SS
    3.78 -    }
    3.79 -  else
    3.80 +    } else
    3.81      {
    3.82        ssRecord = m_bs->GetSSManager ()->CreateSSRecord (
    3.83            rngreq->GetMacAddress ());
    3.84 @@ -177,8 +172,7 @@
    3.85        //CIDs already assigned, e.g., RNG-REQ was lost and resent after timeout. reusing old CIDs
    3.86        ssRecord->ResetRangingCorrectionRetries ();
    3.87        ssRecord->ResetInvitedRangingRetries ();
    3.88 -    }
    3.89 -  else
    3.90 +    } else
    3.91      {
    3.92        m_bs->GetConnectionManager ()->AllocateManagementConnections (ssRecord,
    3.93            rngrsp);
    3.94 @@ -208,8 +202,7 @@
    3.95    //polled initial ranging
    3.96  }
    3.97  
    3.98 -void
    3.99 -BSLinkManager::PerformInvitedRanging (Ptr<const ConnectionIdentifier> cid,
   3.100 +void BSLinkManager::PerformInvitedRanging (Ptr<const ConnectionIdentifier> cid,
   3.101      RngRsp *rngrsp)
   3.102  {
   3.103    NS_ASSERT_MSG (m_bs->GetCidType (cid)
   3.104 @@ -223,8 +216,7 @@
   3.105    if (IsRangingAcceptable ())
   3.106      {
   3.107        AcceptRanging (cid, rngrsp, ssRecord);
   3.108 -    }
   3.109 -  else
   3.110 +    } else
   3.111      {
   3.112        if (ssRecord->GetRangingCorrectionRetries ()
   3.113            == m_bs->GetMaxRangingCorrectionRetries ())
   3.114 @@ -234,8 +226,7 @@
   3.115      }
   3.116  }
   3.117  
   3.118 -void
   3.119 -BSLinkManager::VerifyInvitedRanging (Ptr<const ConnectionIdentifier> cid,
   3.120 +void BSLinkManager::VerifyInvitedRanging (Ptr<const ConnectionIdentifier> cid,
   3.121      uint8_t uiuc)
   3.122  {
   3.123    if (m_bs->GetCidType (cid) == WimaxConnection::CONNECTION_TYPE_BASIC && uiuc
   3.124 @@ -256,8 +247,7 @@
   3.125      }
   3.126  }
   3.127  
   3.128 -void
   3.129 -BSLinkManager::SetParametersToAdjust (RngRsp *rngrsp)
   3.130 +void BSLinkManager::SetParametersToAdjust (RngRsp *rngrsp)
   3.131  {
   3.132    //code to calculate parameter adjustment values goes here
   3.133  
   3.134 @@ -266,8 +256,7 @@
   3.135    rngrsp->SetOffsetFreqAdjust (30);
   3.136  }
   3.137  
   3.138 -void
   3.139 -BSLinkManager::AbortRanging (Ptr<const ConnectionIdentifier> cid,
   3.140 +void BSLinkManager::AbortRanging (Ptr<const ConnectionIdentifier> cid,
   3.141      RngRsp *rngrsp, SSRecord *ssRecord, bool isOldSS)
   3.142  {
   3.143    rngrsp->SetRangStatus (WimaxNetDevice::RANGING_STATUS_ABORT);
   3.144 @@ -280,8 +269,7 @@
   3.145    DeallocateCids (cid);
   3.146  }
   3.147  
   3.148 -void
   3.149 -BSLinkManager::AcceptRanging (Ptr<const ConnectionIdentifier> cid,
   3.150 +void BSLinkManager::AcceptRanging (Ptr<const ConnectionIdentifier> cid,
   3.151      RngRsp *rngrsp, SSRecord *ssRecord)
   3.152  {
   3.153    rngrsp->SetRangStatus (WimaxNetDevice::RANGING_STATUS_SUCCESS);
   3.154 @@ -296,8 +284,7 @@
   3.155    //implement T9 here, once basic capability negotiation is implemented
   3.156  }
   3.157  
   3.158 -void
   3.159 -BSLinkManager::ContinueRanging (Ptr<const ConnectionIdentifier> cid,
   3.160 +void BSLinkManager::ContinueRanging (Ptr<const ConnectionIdentifier> cid,
   3.161      RngRsp *rngrsp, SSRecord *ssRecord)
   3.162  {
   3.163    rngrsp->SetRangStatus (WimaxNetDevice::RANGING_STATUS_CONTINUE);
   3.164 @@ -305,8 +292,7 @@
   3.165    ssRecord->SetRangingStatus (WimaxNetDevice::RANGING_STATUS_CONTINUE);
   3.166  }
   3.167  
   3.168 -void
   3.169 -BSLinkManager::ScheduleRngRspMessage (Ptr<const ConnectionIdentifier> cid,
   3.170 +void BSLinkManager::ScheduleRngRspMessage (Ptr<const ConnectionIdentifier> cid,
   3.171      RngRsp *rngrsp)
   3.172  {
   3.173    if (rngrsp->GetRangStatus () == WimaxNetDevice::RANGING_STATUS_SUCCESS
   3.174 @@ -321,35 +307,30 @@
   3.175    m_bs->Enqueue (p, MacHeaderType (), m_bs->GetConnection (cid));
   3.176  }
   3.177  
   3.178 -void
   3.179 -BSLinkManager::DeallocateCids (Ptr<const ConnectionIdentifier> cid)
   3.180 +void BSLinkManager::DeallocateCids (Ptr<const ConnectionIdentifier> cid)
   3.181  {
   3.182    //if necessary, delete entire connections or simply set CIDs to 0
   3.183  }
   3.184  
   3.185 -uint64_t
   3.186 -BSLinkManager::SelectDlChannel (void)
   3.187 +uint64_t BSLinkManager::SelectDlChannel (void)
   3.188  {
   3.189    //temporarily set to 1 for quick scanning
   3.190    return m_bs->GetChannel (1);
   3.191  }
   3.192  
   3.193 -bool
   3.194 -BSLinkManager::ChangeDlChannel (void)
   3.195 +bool BSLinkManager::ChangeDlChannel (void)
   3.196  {
   3.197    //code to decide if SS shall move to a new channel/frequency goes here
   3.198    return false; //temp
   3.199  }
   3.200  
   3.201 -uint32_t
   3.202 -BSLinkManager::GetNewDlChannel (void)
   3.203 +uint32_t BSLinkManager::GetNewDlChannel (void)
   3.204  {
   3.205    //code to determine suggested new frequency goes here
   3.206    return 100; //temp
   3.207  }
   3.208  
   3.209 -uint8_t
   3.210 -BSLinkManager::GetSignalQuality (void)
   3.211 +uint8_t BSLinkManager::GetSignalQuality (void)
   3.212  {
   3.213    //code to measure signal quality goes here
   3.214  
   3.215 @@ -358,8 +339,7 @@
   3.216    return signalQuality;
   3.217  }
   3.218  
   3.219 -bool
   3.220 -BSLinkManager::IsRangingAcceptable (void)
   3.221 +bool BSLinkManager::IsRangingAcceptable (void)
   3.222  {
   3.223    //code to check if signal good enough to accept the ranging, see Figure 63
   3.224  
     4.1 --- a/src/devices/wimax/bs-link-manager.h	Tue Nov 10 14:36:17 2009 +0100
     4.2 +++ b/src/devices/wimax/bs-link-manager.h	Tue Nov 10 15:05:38 2009 +0100
     4.3 @@ -28,7 +28,8 @@
     4.4  #include "connection-identifier.h"
     4.5  #include "mac-messages.h"
     4.6  
     4.7 -namespace ns3 {
     4.8 +namespace ns3
     4.9 +{
    4.10  
    4.11  class BSLinkManager
    4.12  {
    4.13 @@ -36,48 +37,33 @@
    4.14    BSLinkManager (Ptr<WimaxBaseStationNetDevice> bs);
    4.15    ~BSLinkManager (void);
    4.16  
    4.17 -  uint8_t
    4.18 -  CalculateRangingOppsToAllocate (void);
    4.19 -  uint64_t
    4.20 -  SelectDlChannel (void);
    4.21 -  void
    4.22 -  ProcessRangingRequest (Ptr<ConnectionIdentifier> cid, RngReq rngreq);
    4.23 +  uint8_t CalculateRangingOppsToAllocate (void);
    4.24 +  uint64_t SelectDlChannel (void);
    4.25 +  void ProcessRangingRequest (Ptr<ConnectionIdentifier> cid, RngReq rngreq);
    4.26    //verifies at the end of an invited ranging interval if SS sent ranging message in it or not
    4.27 -  void
    4.28 -  VerifyInvitedRanging (Ptr<const ConnectionIdentifier> cid, uint8_t uiuc);
    4.29 +  void VerifyInvitedRanging (Ptr<const ConnectionIdentifier> cid, uint8_t uiuc);
    4.30  private:
    4.31 -  void
    4.32 -  PerformRanging (Ptr<ConnectionIdentifier> cid, RngReq rngreq);
    4.33 -  void
    4.34 -  PerformInitialRanging (Ptr<ConnectionIdentifier> cid, RngReq *rngreq,
    4.35 +  void PerformRanging (Ptr<ConnectionIdentifier> cid, RngReq rngreq);
    4.36 +  void PerformInitialRanging (Ptr<ConnectionIdentifier> cid, RngReq *rngreq,
    4.37        RngRsp *rngrsp);
    4.38 -  void
    4.39 -  PerformInvitedRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp);
    4.40 +  void PerformInvitedRanging (Ptr<const ConnectionIdentifier> cid,
    4.41 +      RngRsp *rngrsp);
    4.42  
    4.43 -  void
    4.44 -  SetParametersToAdjust (RngRsp *rngrsp);
    4.45 -  void
    4.46 -  AbortRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.47 +  void SetParametersToAdjust (RngRsp *rngrsp);
    4.48 +  void AbortRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.49        SSRecord *ssRecord, bool isNewSS);
    4.50 -  void
    4.51 -  AcceptRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.52 +  void AcceptRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.53        SSRecord *ssRecord);
    4.54 -  void
    4.55 -  ContinueRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.56 +  void ContinueRanging (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp,
    4.57        SSRecord *ssRecord);
    4.58 -  void
    4.59 -  ScheduleRngRspMessage (Ptr<const ConnectionIdentifier> cid, RngRsp *rngrsp);
    4.60 -  void
    4.61 -  DeallocateCids (Ptr<const ConnectionIdentifier> cid);
    4.62 +  void ScheduleRngRspMessage (Ptr<const ConnectionIdentifier> cid,
    4.63 +      RngRsp *rngrsp);
    4.64 +  void DeallocateCids (Ptr<const ConnectionIdentifier> cid);
    4.65  
    4.66 -  bool
    4.67 -  ChangeDlChannel (void);
    4.68 -  uint32_t
    4.69 -  GetNewDlChannel (void);
    4.70 -  uint8_t
    4.71 -  GetSignalQuality (void);
    4.72 -  bool
    4.73 -  IsRangingAcceptable (void);
    4.74 +  bool ChangeDlChannel (void);
    4.75 +  uint32_t GetNewDlChannel (void);
    4.76 +  uint8_t GetSignalQuality (void);
    4.77 +  bool IsRangingAcceptable (void);
    4.78  
    4.79    Ptr<WimaxBaseStationNetDevice> m_bs;
    4.80  
     5.1 --- a/src/devices/wimax/bs-scheduler-rtps.cc	Tue Nov 10 14:36:17 2009 +0100
     5.2 +++ b/src/devices/wimax/bs-scheduler-rtps.cc	Tue Nov 10 15:05:38 2009 +0100
     5.3 @@ -39,12 +39,12 @@
     5.4  
     5.5  NS_LOG_COMPONENT_DEFINE ("BSSchedulerRtps");
     5.6  
     5.7 -namespace ns3 {
     5.8 +namespace ns3
     5.9 +{
    5.10  
    5.11  NS_OBJECT_ENSURE_REGISTERED ( BSSchedulerRtps);
    5.12  
    5.13 -TypeId
    5.14 -BSSchedulerRtps::GetTypeId (void)
    5.15 +TypeId BSSchedulerRtps::GetTypeId (void)
    5.16  {
    5.17    static TypeId tid =
    5.18        TypeId ("ns3::BSSchedulerRtps") .SetParent<Object> () .AddConstructor<
    5.19 @@ -92,8 +92,7 @@
    5.20    return m_downlinkBursts;
    5.21  }
    5.22  
    5.23 -void
    5.24 -BSSchedulerRtps::AddDownlinkBurst (Ptr<const WimaxConnection> connection,
    5.25 +void BSSchedulerRtps::AddDownlinkBurst (Ptr<const WimaxConnection> connection,
    5.26      uint8_t diuc, WimaxPhy::ModulationType modulationType,
    5.27      Ptr<PacketBurst> burst)
    5.28  {
    5.29 @@ -118,8 +117,7 @@
    5.30    m_downlinkBursts->push_back (std::make_pair (dlMapIe, burst));
    5.31  }
    5.32  
    5.33 -void
    5.34 -BSSchedulerRtps::Schedule (void)
    5.35 +void BSSchedulerRtps::Schedule (void)
    5.36  {
    5.37    /**
    5.38     * \brief  A DownLink Scheduler for rtPS Flows
    5.39 @@ -172,8 +170,7 @@
    5.40              QoSParameterSet::SCHEDULING_TYPE_ALL) << std::endl);
    5.41  }
    5.42  
    5.43 -Ptr<PacketBurst>
    5.44 -BSSchedulerRtps::CreateUgsBurst (ServiceFlow *serviceFlow,
    5.45 +Ptr<PacketBurst> BSSchedulerRtps::CreateUgsBurst (ServiceFlow *serviceFlow,
    5.46      WimaxPhy::ModulationType modulationType, uint32_t availableSymbols)
    5.47  {
    5.48    Time timeStamp;
    5.49 @@ -205,18 +202,17 @@
    5.50    return burst;
    5.51  }
    5.52  
    5.53 -bool
    5.54 -BSSchedulerRtps::SelectConnection (Ptr<WimaxConnection> &connection)
    5.55 +bool BSSchedulerRtps::SelectConnection (Ptr<WimaxConnection> &connection)
    5.56  {
    5.57    return false;
    5.58  }
    5.59  
    5.60 -void
    5.61 -BSSchedulerRtps::BSSchedulerBroadcastConnection (uint32_t &availableSymbols)
    5.62 +void BSSchedulerRtps::BSSchedulerBroadcastConnection (
    5.63 +    uint32_t &availableSymbols)
    5.64  {
    5.65    Ptr<WimaxConnection> connection;
    5.66    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
    5.67 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
    5.68 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
    5.69    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
    5.70    uint8_t diuc = OfdmDlBurstProfile::DIUC_BURST_PROFILE_1;
    5.71    uint32_t nrSymbolsRequired = 0;
    5.72 @@ -252,13 +248,12 @@
    5.73      }
    5.74  }
    5.75  
    5.76 -void
    5.77 -BSSchedulerRtps::BSSchedulerInitialRangingConnection (
    5.78 +void BSSchedulerRtps::BSSchedulerInitialRangingConnection (
    5.79      uint32_t &availableSymbols)
    5.80  {
    5.81    Ptr<WimaxConnection> connection;
    5.82    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
    5.83 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
    5.84 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
    5.85    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
    5.86    uint8_t diuc = OfdmDlBurstProfile::DIUC_BURST_PROFILE_1;
    5.87    uint32_t nrSymbolsRequired = 0;
    5.88 @@ -294,12 +289,11 @@
    5.89      }
    5.90  }
    5.91  
    5.92 -void
    5.93 -BSSchedulerRtps::BSSchedulerBasicConnection (uint32_t &availableSymbols)
    5.94 +void BSSchedulerRtps::BSSchedulerBasicConnection (uint32_t &availableSymbols)
    5.95  {
    5.96    Ptr<WimaxConnection> connection;
    5.97    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
    5.98 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
    5.99 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.100    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
   5.101    uint8_t diuc = OfdmDlBurstProfile::DIUC_BURST_PROFILE_1;
   5.102    uint32_t nrSymbolsRequired = 0;
   5.103 @@ -347,12 +341,11 @@
   5.104      }
   5.105  }
   5.106  
   5.107 -void
   5.108 -BSSchedulerRtps::BSSchedulerPrimaryConnection (uint32_t &availableSymbols)
   5.109 +void BSSchedulerRtps::BSSchedulerPrimaryConnection (uint32_t &availableSymbols)
   5.110  {
   5.111    Ptr<WimaxConnection> connection;
   5.112    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
   5.113 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
   5.114 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.115    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
   5.116    uint8_t diuc = 0;
   5.117    uint32_t nrSymbolsRequired = 0;
   5.118 @@ -400,12 +393,11 @@
   5.119      }
   5.120  }
   5.121  
   5.122 -void
   5.123 -BSSchedulerRtps::BSSchedulerUGSConnection (uint32_t &availableSymbols)
   5.124 +void BSSchedulerRtps::BSSchedulerUGSConnection (uint32_t &availableSymbols)
   5.125  {
   5.126    Ptr<WimaxConnection> connection;
   5.127    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
   5.128 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
   5.129 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.130    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
   5.131    uint8_t diuc;
   5.132    uint32_t nrSymbolsRequired = 0;
   5.133 @@ -455,13 +447,12 @@
   5.134  
   5.135  }
   5.136  
   5.137 -void
   5.138 -BSSchedulerRtps::BSSchedulerRTPSConnection (uint32_t &availableSymbols)
   5.139 +void BSSchedulerRtps::BSSchedulerRTPSConnection (uint32_t &availableSymbols)
   5.140  {
   5.141  
   5.142    Ptr<WimaxConnection> connection;
   5.143    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
   5.144 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
   5.145 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.146    GenericMacHeader hdr;
   5.147    Ptr<Packet> packet;
   5.148    Ptr<PacketBurst> burst = Create<PacketBurst> ();
   5.149 @@ -615,12 +606,11 @@
   5.150    availableSymbols -= totSymbolsRequired;
   5.151  }
   5.152  
   5.153 -void
   5.154 -BSSchedulerRtps::BSSchedulerNRTPSConnection (uint32_t &availableSymbols)
   5.155 +void BSSchedulerRtps::BSSchedulerNRTPSConnection (uint32_t &availableSymbols)
   5.156  {
   5.157    Ptr<WimaxConnection> connection;
   5.158    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
   5.159 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
   5.160 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.161    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
   5.162    uint8_t diuc = 0;
   5.163    uint32_t nrSymbolsRequired = 0;
   5.164 @@ -670,12 +660,11 @@
   5.165      }
   5.166  }
   5.167  
   5.168 -void
   5.169 -BSSchedulerRtps::BSSchedulerBEConnection (uint32_t &availableSymbols)
   5.170 +void BSSchedulerRtps::BSSchedulerBEConnection (uint32_t &availableSymbols)
   5.171  {
   5.172    Ptr<WimaxConnection> connection;
   5.173    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
   5.174 -  cid->SetIdentifier(ConnectionIdentifier::CID_UNINITIALIZED);
   5.175 +  cid->SetIdentifier (ConnectionIdentifier::CID_UNINITIALIZED);
   5.176    WimaxPhy::ModulationType modulationType = WimaxPhy::MODULATION_TYPE_BPSK_12;
   5.177    uint8_t diuc = 0;
   5.178    uint32_t nrSymbolsRequired = 0;
     6.1 --- a/src/devices/wimax/bs-scheduler-rtps.h	Tue Nov 10 14:36:17 2009 +0100
     6.2 +++ b/src/devices/wimax/bs-scheduler-rtps.h	Tue Nov 10 15:05:38 2009 +0100
     6.3 @@ -31,7 +31,8 @@
     6.4  #include "dl-mac-messages.h"
     6.5  #include "bs-scheduler.h"
     6.6  
     6.7 -namespace ns3 {
     6.8 +namespace ns3
     6.9 +{
    6.10  
    6.11  class WimaxBaseStationNetDevice;
    6.12  class GenericMacHeader;
    6.13 @@ -54,15 +55,14 @@
    6.14   *the effective available bandwidth to all rtPS flows that have at least one packet
    6.15   * to transmit. The remaining bandwidth is allocated to rntPS and BE Connections.
    6.16   */
    6.17 -class BSSchedulerRtps : public BSScheduler
    6.18 +class BSSchedulerRtps: public BSScheduler
    6.19  {
    6.20  public:
    6.21    BSSchedulerRtps ();
    6.22    BSSchedulerRtps (Ptr<WimaxBaseStationNetDevice> bs);
    6.23    ~BSSchedulerRtps (void);
    6.24  
    6.25 -  static TypeId
    6.26 -  GetTypeId (void);
    6.27 +  static TypeId GetTypeId (void);
    6.28  
    6.29    /*
    6.30     * \brief This function returns all the downlink bursts scheduled for the next
    6.31 @@ -80,14 +80,12 @@
    6.32     * \param modulationType the modulation type of the burst
    6.33     * \param burst the dowlink burst to add to the dowlink sub frame
    6.34     */
    6.35 -  void
    6.36 -  AddDownlinkBurst (Ptr<const WimaxConnection> connection, uint8_t diuc,
    6.37 +  void AddDownlinkBurst (Ptr<const WimaxConnection> connection, uint8_t diuc,
    6.38        WimaxPhy::ModulationType modulationType, Ptr<PacketBurst> burst);
    6.39    /**
    6.40     * \brief Schedule function.
    6.41     */
    6.42 -  void
    6.43 -  Schedule (void);
    6.44 +  void Schedule (void);
    6.45    /**
    6.46     * \brief Check for IR and Broadcast connections that have packets to trasmit.
    6.47     * \param connection will point to a initial ranging or broadcast connection
    6.48 @@ -95,8 +93,7 @@
    6.49     * \returns false if no initial ranging or broadcast connection has packets
    6.50     * to transmit, true otherwise
    6.51     */
    6.52 -  bool
    6.53 -  SelectIRandBCConnection (Ptr<WimaxConnection> &connection);
    6.54 +  bool SelectIRandBCConnection (Ptr<WimaxConnection> &connection);
    6.55    /**
    6.56     * \brief Check for Basic and Primary connections that have packets to trasmit.
    6.57     * \param connection will point to a basic or primary connection
    6.58 @@ -104,73 +101,62 @@
    6.59     * \returns false if no basic or primary connection has packets
    6.60     * to transmit, true otherwise
    6.61     */
    6.62 -  bool
    6.63 -  SelectMenagementConnection (Ptr<WimaxConnection> &connection);
    6.64 +  bool SelectMenagementConnection (Ptr<WimaxConnection> &connection);
    6.65    /**
    6.66     * \brief Check for UGS connections that have packets to trasmit.
    6.67     *
    6.68     * The method return the UGS connection that have packets to transmits,
    6.69     * according to the MaxLatency specifications.
    6.70     */
    6.71 -  bool
    6.72 -  SelectUGSConnection (Ptr<WimaxConnection> &connection);
    6.73 +  bool SelectUGSConnection (Ptr<WimaxConnection> &connection);
    6.74    /**
    6.75     * \brief Check for rtPS connections that have packets to trasmit.
    6.76     */
    6.77 -  bool
    6.78 -  SelectRTPSConnection (Ptr<WimaxConnection> &connection);
    6.79 +  bool SelectRTPSConnection (Ptr<WimaxConnection> &connection);
    6.80    /**
    6.81     * \brief Check for nrtPS connections that have packets to trasmit.
    6.82     */
    6.83 -  bool
    6.84 -  SelectNRTPSConnection (Ptr<WimaxConnection> &connection);
    6.85 +  bool SelectNRTPSConnection (Ptr<WimaxConnection> &connection);
    6.86    /**
    6.87     * \brief Check for BE connections that have packets to trasmit.
    6.88     */
    6.89 -  bool
    6.90 -  SelectBEConnection (Ptr<WimaxConnection> &connection);
    6.91 +  bool SelectBEConnection (Ptr<WimaxConnection> &connection);
    6.92  
    6.93    /*
    6.94     * \brief Selects a connection from the list of connections having packets to be sent .
    6.95     * \param connection will point to a connection that have packets to be sent
    6.96     * \returns false if no connection has packets to be sent, true otherwise
    6.97     */
    6.98 -  bool
    6.99 -  SelectConnection (Ptr<WimaxConnection> &connection);
   6.100 +  bool SelectConnection (Ptr<WimaxConnection> &connection);
   6.101  
   6.102    /*
   6.103     * \brief schedules the broadcast connections
   6.104     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.105     */
   6.106 -  void
   6.107 -  BSSchedulerBroadcastConnection (uint32_t &availableSymbols);
   6.108 +  void BSSchedulerBroadcastConnection (uint32_t &availableSymbols);
   6.109  
   6.110    /*
   6.111     * \brief schedules the IR connections
   6.112     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.113     */
   6.114 -  void
   6.115 -  BSSchedulerInitialRangingConnection (uint32_t &availableSymbols);
   6.116 +  void BSSchedulerInitialRangingConnection (uint32_t &availableSymbols);
   6.117  
   6.118    /*
   6.119     * \brief schedules the basic connections
   6.120     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.121     */
   6.122 -  void
   6.123 -  BSSchedulerBasicConnection (uint32_t &availableSymbols);
   6.124 +  void BSSchedulerBasicConnection (uint32_t &availableSymbols);
   6.125  
   6.126    /*
   6.127     * \brief schedules the primary connection
   6.128     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.129     */
   6.130 -  void
   6.131 -  BSSchedulerPrimaryConnection (uint32_t &availableSymbols);
   6.132 +  void BSSchedulerPrimaryConnection (uint32_t &availableSymbols);
   6.133    /*
   6.134     * \brief schedules the UGS connection
   6.135     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.136     */
   6.137 -  void
   6.138 -  BSSchedulerUGSConnection (uint32_t &availableSymbols);
   6.139 +  void BSSchedulerUGSConnection (uint32_t &availableSymbols);
   6.140    /**
   6.141     * \brief Downlink Scheduler for rtPS connections.
   6.142     *
   6.143 @@ -186,22 +172,19 @@
   6.144     * symbols for rtPS connections, the Channel Saturation Control function
   6.145     * is called to redistribute the available bandwidth.
   6.146     */
   6.147 -  void
   6.148 -  BSSchedulerRTPSConnection (uint32_t &availableSymbols);
   6.149 +  void BSSchedulerRTPSConnection (uint32_t &availableSymbols);
   6.150  
   6.151    /*
   6.152     * \brief schedules the NRTPS connections
   6.153     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.154     */
   6.155 -  void
   6.156 -  BSSchedulerNRTPSConnection (uint32_t &availableSymbols);
   6.157 +  void BSSchedulerNRTPSConnection (uint32_t &availableSymbols);
   6.158  
   6.159    /*
   6.160     * \brief schedules the BE connection
   6.161     * \param availableSymbols the remaining free OFDM symbols in the current subframe
   6.162     */
   6.163 -  void
   6.164 -  BSSchedulerBEConnection (uint32_t &availableSymbols);
   6.165 +  void BSSchedulerBEConnection (uint32_t &availableSymbols);
   6.166  
   6.167    /*
   6.168     * \brief Creates a dowlink UGS burst
   6.169 @@ -210,8 +193,7 @@
   6.170     * \param availableSymbols maximum number of OFDM symbols to be used by the burst
   6.171     * \returns a Burst (list of packets)
   6.172     */
   6.173 -  Ptr<PacketBurst>
   6.174 -  CreateUgsBurst (ServiceFlow *serviceFlow,
   6.175 +  Ptr<PacketBurst> CreateUgsBurst (ServiceFlow *serviceFlow,
   6.176        WimaxPhy::ModulationType modulationType, uint32_t availableSymbols);
   6.177  
   6.178  private:
     7.1 --- a/src/devices/wimax/bs-scheduler-simple.cc	Tue Nov 10 14:36:17 2009 +0100
     7.2 +++ b/src/devices/wimax/bs-scheduler-simple.cc	Tue Nov 10 15:05:38 2009 +0100
     7.3 @@ -37,12 +37,12 @@
     7.4  
     7.5  NS_LOG_COMPONENT_DEFINE ("BSSchedulerSimple");
     7.6  
     7.7 -namespace ns3 {
     7.8 +namespace ns3
     7.9 +{
    7.10  
    7.11  NS_OBJECT_ENSURE_REGISTERED ( BSSchedulerSimple);
    7.12  
    7.13 -TypeId
    7.14 -BSSchedulerSimple::GetTypeId (void)
    7.15 +TypeId BSSchedulerSimple::GetTypeId (void)
    7.16  {
    7.17    static TypeId tid =
    7.18        TypeId ("ns3::BSSchedulerSimple") .SetParent<Object> () .AddConstructor<
    7.19 @@ -88,10 +88,9 @@
    7.20    return m_downlinkBursts;
    7.21  }
    7.22  
    7.23 -void
    7.24 -BSSchedulerSimple::AddDownlinkBurst (Ptr<const WimaxConnection> connection,
    7.25 -    uint8_t diuc, WimaxPhy::ModulationType modulationType,
    7.26 -    Ptr<PacketBurst> burst)
    7.27 +void BSSchedulerSimple::AddDownlinkBurst (
    7.28 +    Ptr<const WimaxConnection> connection, uint8_t diuc,
    7.29 +    WimaxPhy::ModulationType modulationType, Ptr<PacketBurst> burst)
    7.30  {
    7.31    OfdmDlMapIe *dlMapIe = new OfdmDlMapIe ();
    7.32    dlMapIe->SetCid (*connection->GetCid ());
    7.33 @@ -114,8 +113,7 @@
    7.34    m_downlinkBursts->push_back (std::make_pair (dlMapIe, burst));
    7.35  }
    7.36  
    7.37 -void
    7.38 -BSSchedulerSimple::Schedule (void)
    7.39 +void BSSchedulerSimple::Schedule (void)
    7.40  {
    7.41    Ptr<WimaxConnection> connection, prevConnection;
    7.42    Ptr<ConnectionIdentifier> cid = CreateObject<ConnectionIdentifier> ();
    7.43 @@ -144,8 +142,7 @@
    7.44                connection->GetCid ())->GetModulationType ();
    7.45            diuc = GetBs ()->GetBurstProfileManager ()->GetBurstProfile (
    7.46                modulationType, WimaxNetDevice::DIRECTION_DOWNLINK);
    7.47 -        }
    7.48 -      else if (connection == GetBs ()->GetInitialRangingConnection ()
    7.49 +        } else if (connection == GetBs ()->GetInitialRangingConnection ()
    7.50            || connection == GetBs ()->GetBroadcastConnection ())
    7.51          {
    7.52  
    7.53 @@ -166,8 +163,7 @@
    7.54                = connection->GetServiceFlow ()->GetRecord ()->GetGrantSize ();
    7.55            burst = CreateUgsBurst (connection->GetServiceFlow (),
    7.56                modulationType, nrSymbolsRequired);
    7.57 -        }
    7.58 -      else
    7.59 +        } else
    7.60          {
    7.61            packet = connection->GetQueue ()->Peek (hdr);
    7.62            nrSymbolsRequired = GetBs ()->GetPhy ()->GetNrSymbols (
    7.63 @@ -225,8 +221,7 @@
    7.64  
    7.65  }
    7.66  
    7.67 -bool
    7.68 -BSSchedulerSimple::SelectConnection (Ptr<WimaxConnection> &connection)
    7.69 +bool BSSchedulerSimple::SelectConnection (Ptr<WimaxConnection> &connection)
    7.70  {
    7.71    connection = 0;
    7.72    Time currentTime = Simulator::Now ();
    7.73 @@ -238,13 +233,11 @@
    7.74      {
    7.75        connection = GetBs ()->GetBroadcastConnection ();
    7.76        return true;
    7.77 -    }
    7.78 -  else if (GetBs ()->GetInitialRangingConnection ()->HasPackets ())
    7.79 +    } else if (GetBs ()->GetInitialRangingConnection ()->HasPackets ())
    7.80      {
    7.81        connection = GetBs ()->GetInitialRangingConnection ();
    7.82        return true;
    7.83 -    }
    7.84 -  else
    7.85 +    } else
    7.86      {
    7.87        std::vector<Ptr<WimaxConnection> > connections;
    7.88        std::vector<ServiceFlow*> *serviceFlows;
    7.89 @@ -333,8 +326,7 @@
    7.90    return false;
    7.91  }
    7.92  
    7.93 -Ptr<PacketBurst>
    7.94 -BSSchedulerSimple::CreateUgsBurst (ServiceFlow *serviceFlow,
    7.95 +Ptr<PacketBurst> BSSchedulerSimple::CreateUgsBurst (ServiceFlow *serviceFlow,
    7.96      WimaxPhy::ModulationType modulationType, uint32_t availableSymbols)
    7.97  {
    7.98    Time timeStamp;
     8.1 --- a/src/devices/wimax/bs-scheduler-simple.h	Tue Nov 10 14:36:17 2009 +0100
     8.2 +++ b/src/devices/wimax/bs-scheduler-simple.h	Tue Nov 10 15:05:38 2009 +0100
     8.3 @@ -30,22 +30,22 @@
     8.4  #include "dl-mac-messages.h"
     8.5  #include "bs-scheduler.h"
     8.6  
     8.7 -namespace ns3 {
     8.8 +namespace ns3
     8.9 +{
    8.10  
    8.11  class WimaxBaseStationNetDevice;
    8.12  class GenericMacHeader;
    8.13  class WimaxConnection;
    8.14  class ConnectionIdentifier;
    8.15  
    8.16 -class BSSchedulerSimple : public BSScheduler
    8.17 +class BSSchedulerSimple: public BSScheduler
    8.18  {
    8.19  public:
    8.20    BSSchedulerSimple ();
    8.21    BSSchedulerSimple (Ptr<WimaxBaseStationNetDevice> bs);
    8.22    ~BSSchedulerSimple (void);
    8.23  
    8.24 -  static TypeId
    8.25 -  GetTypeId (void);
    8.26 +  static TypeId GetTypeId (void);
    8.27  
    8.28    /*
    8.29     * \brief This function returns all the downlink bursts scheduled for the next
    8.30 @@ -62,22 +62,19 @@
    8.31     * \param modulationType the modulation type of the burst
    8.32     * \param burst the dowlink burst to add to the dowlink sub frame
    8.33     */
    8.34 -  void
    8.35 -  AddDownlinkBurst (Ptr<const WimaxConnection> connection, uint8_t diuc,
    8.36 +  void AddDownlinkBurst (Ptr<const WimaxConnection> connection, uint8_t diuc,
    8.37        WimaxPhy::ModulationType modulationType, Ptr<PacketBurst> burst);
    8.38  
    8.39    /*
    8.40     * \brief the scheduling function for the downlink subframe.
    8.41     */
    8.42 -  void
    8.43 -  Schedule (void);
    8.44 +  void Schedule (void);
    8.45    /*
    8.46     * \brief Selects a connection from the list of connections having packets to be sent .
    8.47     * \param connection will point to a connection that have packets to be sent
    8.48     * \returns false if no connection has packets to be sent, true otherwise
    8.49     */
    8.50 -  bool
    8.51 -  SelectConnection (Ptr<WimaxConnection> &connection);
    8.52 +  bool SelectConnection (Ptr<WimaxConnection> &connection);
    8.53    /*
    8.54     * \brief Creates a dowlink UGS burst
    8.55     * \param serviceFlow the service flow of the burst
    8.56 @@ -85,8 +82,7 @@
    8.57     * \param availableSymbols maximum number of OFDM symbols to be used by the burst
    8.58     * \returns a Burst (list of packets)
    8.59     */
    8.60 -  Ptr<PacketBurst>
    8.61 -  CreateUgsBurst (ServiceFlow *serviceFlow,
    8.62 +  Ptr<PacketBurst> CreateUgsBurst (ServiceFlow *serviceFlow,
    8.63        WimaxPhy::ModulationType modulationType, uint32_t availableSymbols);
    8.64  
    8.65  private:
     9.1 --- a/src/devices/wimax/bs-scheduler.cc	Tue Nov 10 14:36:17 2009 +0100
     9.2 +++ b/src/devices/wimax/bs-scheduler.cc	Tue Nov 10 15:05:38 2009 +0100
     9.3 @@ -37,11 +37,11 @@
     9.4  
     9.5  NS_LOG_COMPONENT_DEFINE ("BSScheduler");
     9.6  
     9.7 -namespace ns3 {
     9.8 +namespace ns3
     9.9 +{
    9.10  NS_OBJECT_ENSURE_REGISTERED ( BSScheduler);
    9.11  
    9.12 -TypeId
    9.13 -BSScheduler::GetTypeId (void)
    9.14 +TypeId BSScheduler::GetTypeId (void)
    9.15  {
    9.16    static TypeId tid = TypeId ("ns3::BSScheduler") .SetParent<Object> ();
    9.17    return tid;
    9.18 @@ -78,14 +78,12 @@
    9.19    m_downlinkBursts = 0;
    9.20  }
    9.21  
    9.22 -void
    9.23 -BSScheduler::SetBs (Ptr<WimaxBaseStationNetDevice> bs)
    9.24 +void BSScheduler::SetBs (Ptr<WimaxBaseStationNetDevice> bs)
    9.25  {
    9.26    m_bs = bs;
    9.27  }
    9.28  
    9.29 -Ptr<WimaxBaseStationNetDevice>
    9.30 -BSScheduler::GetBs (void)
    9.31 +Ptr<WimaxBaseStationNetDevice> BSScheduler::GetBs (void)
    9.32  {
    9.33    return m_bs;
    9.34  }
    10.1 --- a/src/devices/wimax/bs-scheduler.h	Tue Nov 10 14:36:17 2009 +0100
    10.2 +++ b/src/devices/wimax/bs-scheduler.h	Tue Nov 10 15:05:38 2009 +0100
    10.3 @@ -29,22 +29,22 @@
    10.4  #include "packet-burst.h"
    10.5  #include "dl-mac-messages.h"
    10.6  
    10.7 -namespace ns3 {
    10.8 +namespace ns3
    10.9 +{
   10.10  
   10.11  class WimaxBaseStationNetDevice;
   10.12  class GenericMacHeader;
   10.13  class WimaxConnection;
   10.14  class ConnectionIdentifier;
   10.15  
   10.16 -class BSScheduler : public Object
   10.17 +class BSScheduler: public Object
   10.18  {
   10.19  public:
   10.20    BSScheduler ();
   10.21    BSScheduler (Ptr<WimaxBaseStationNetDevice> bs);
   10.22    ~BSScheduler (void);
   10.23  
   10.24 -  static TypeId
   10.25 -  GetTypeId (void);
   10.26 +  static TypeId GetTypeId (void);
   10.27  
   10.28    /*
   10.29     * \brief This function returns all the downlink bursts scheduled for the next
   10.30 @@ -61,22 +61,20 @@
   10.31     * \param modulationType the modulation type of the burst
   10.32     * \param burst the dowlink burst to add to the dowlink sub frame
   10.33     */
   10.34 -  virtual void
   10.35 -  AddDownlinkBurst (Ptr<const WimaxConnection> connection, uint8_t diuc,
   10.36 -      WimaxPhy::ModulationType modulationType, Ptr<PacketBurst> burst) = 0;
   10.37 +  virtual void AddDownlinkBurst (Ptr<const WimaxConnection> connection,
   10.38 +      uint8_t diuc, WimaxPhy::ModulationType modulationType,
   10.39 +      Ptr<PacketBurst> burst) = 0;
   10.40  
   10.41    /*
   10.42     * \brief the scheduling function for the downlink subframe.
   10.43     */
   10.44 -  virtual void
   10.45 -  Schedule (void) = 0;
   10.46 +  virtual void Schedule (void) = 0;
   10.47    /*
   10.48     * \brief Selects a connection from the list of connections having packets to be sent .
   10.49     * \param connection will point to a connection that have packets to be sent
   10.50     * \returns false if no connection has packets to be sent, true otherwise
   10.51     */
   10.52 -  virtual bool
   10.53 -  SelectConnection (Ptr<WimaxConnection> &connection) = 0;
   10.54 +  virtual bool SelectConnection (Ptr<WimaxConnection> &connection) = 0;
   10.55  
   10.56    /*
   10.57     * \brief Creates a dowlink UGS burst
   10.58 @@ -85,14 +83,11 @@
   10.59     * \param availableSymbols maximum number of OFDM symbols to be used by the burst
   10.60     * \returns a Burst (list of packets)
   10.61     */
   10.62 -  virtual Ptr<PacketBurst>
   10.63 -  CreateUgsBurst (ServiceFlow *serviceFlow,
   10.64 +  virtual Ptr<PacketBurst> CreateUgsBurst (ServiceFlow *serviceFlow,
   10.65        WimaxPhy::ModulationType modulationType, uint32_t availableSymbols) = 0;
   10.66  
   10.67 -  virtual Ptr<WimaxBaseStationNetDevice>
   10.68 -  GetBs (void);
   10.69 -  virtual void
   10.70 -  SetBs (Ptr<WimaxBaseStationNetDevice> bs);
   10.71 +  virtual Ptr<WimaxBaseStationNetDevice> GetBs (void);
   10.72 +  virtual void SetBs (Ptr<WimaxBaseStationNetDevice> bs);
   10.73  private:
   10.74    Ptr<WimaxBaseStationNetDevice> m_bs;
   10.75    std::list<std::pair<OfdmDlMapIe*, Ptr<PacketBurst> > > *m_downlinkBursts;
    11.1 --- a/src/devices/wimax/burst-profile-manager.cc	Tue Nov 10 14:36:17 2009 +0100
    11.2 +++ b/src/devices/wimax/burst-profile-manager.cc	Tue Nov 10 15:05:38 2009 +0100
    11.3 @@ -29,7 +29,8 @@
    11.4  
    11.5  NS_LOG_COMPONENT_DEFINE ("BurstProfileManager");
    11.6  
    11.7 -namespace ns3 {
    11.8 +namespace ns3
    11.9 +{
   11.10  
   11.11  BurstProfileManager::BurstProfileManager (Ptr<WimaxNetDevice> device) :
   11.12    m_device (device)
   11.13 @@ -41,8 +42,7 @@
   11.14    m_device = 0;
   11.15  }
   11.16  
   11.17 -uint16_t
   11.18 -BurstProfileManager::GetNrBurstProfilesToDefine (void)
   11.19 +uint16_t BurstProfileManager::GetNrBurstProfilesToDefine (void)
   11.20  {
   11.21    /*
   11.22     * 7 modulation types
   11.23 @@ -50,8 +50,7 @@
   11.24    return 7;
   11.25  }
   11.26  
   11.27 -WimaxPhy::ModulationType
   11.28 -BurstProfileManager::GetModulationType (uint8_t iuc,
   11.29 +WimaxPhy::ModulationType BurstProfileManager::GetModulationType (uint8_t iuc,
   11.30      WimaxNetDevice::Direction direction) const
   11.31  {
   11.32    if (direction == WimaxNetDevice::DIRECTION_DOWNLINK)
   11.33 @@ -64,8 +63,7 @@
   11.34            if (iter->GetDiuc () == iuc)
   11.35              return (WimaxPhy::ModulationType) iter->GetFecCodeType ();
   11.36          }
   11.37 -    }
   11.38 -  else
   11.39 +    } else
   11.40      {
   11.41        std::vector<OfdmUlBurstProfile> ulBurstProfiles =
   11.42            m_device->GetCurrentUcd ().GetUlBurstProfiles ();
   11.43 @@ -83,8 +81,8 @@
   11.44    return (WimaxPhy::ModulationType) -1;
   11.45  }
   11.46  
   11.47 -uint8_t
   11.48 -BurstProfileManager::GetBurstProfile (WimaxPhy::ModulationType modulationType,
   11.49 +uint8_t BurstProfileManager::GetBurstProfile (
   11.50 +    WimaxPhy::ModulationType modulationType,
   11.51      WimaxNetDevice::Direction direction) const
   11.52  {
   11.53    if (direction == WimaxNetDevice::DIRECTION_DOWNLINK)
   11.54 @@ -97,8 +95,7 @@
   11.55            if (iter->GetFecCodeType () == modulationType)
   11.56              return iter->GetDiuc ();
   11.57          }
   11.58 -    }
   11.59 -  else
   11.60 +    } else
   11.61      {
   11.62        std::vector<OfdmUlBurstProfile> ulBurstProfiles =
   11.63            m_device->GetCurrentUcd ().GetUlBurstProfiles ();
   11.64 @@ -116,8 +113,7 @@
   11.65    return ~0;
   11.66  }
   11.67  
   11.68 -uint8_t
   11.69 -BurstProfileManager::GetBurstProfileForSS (const SSRecord *ssRecord,
   11.70 +uint8_t BurstProfileManager::GetBurstProfileForSS (const SSRecord *ssRecord,
   11.71      const RngReq *rngreq, WimaxPhy::ModulationType &modulationType)
   11.72  {
   11.73    /*during initial ranging or periodic ranging (or when RNG-REQ is used instead of
   11.74 @@ -128,17 +124,15 @@
   11.75    return GetBurstProfile (modulationType, WimaxNetDevice::DIRECTION_DOWNLINK);
   11.76  }
   11.77  
   11.78 -WimaxPhy::ModulationType
   11.79 -BurstProfileManager::GetModulationTypeForSS (const SSRecord *ssRecord,
   11.80 -    const RngReq *rngreq)
   11.81 +WimaxPhy::ModulationType BurstProfileManager::GetModulationTypeForSS (
   11.82 +    const SSRecord *ssRecord, const RngReq *rngreq)
   11.83  {
   11.84  
   11.85    return GetModulationType (rngreq->GetReqDlBurstProfile (),
   11.86        WimaxNetDevice::DIRECTION_DOWNLINK);
   11.87  }
   11.88  
   11.89 -uint8_t
   11.90 -BurstProfileManager::GetBurstProfileToRequest (void)
   11.91 +uint8_t BurstProfileManager::GetBurstProfileToRequest (void)
   11.92  {
   11.93    /*modulation type is currently set by user in simulation script, shall
   11.94     actually be determined based on SS's distance, power, signal etc*/
    12.1 --- a/src/devices/wimax/burst-profile-manager.h	Tue Nov 10 14:36:17 2009 +0100
    12.2 +++ b/src/devices/wimax/burst-profile-manager.h	Tue Nov 10 15:05:38 2009 +0100
    12.3 @@ -26,7 +26,8 @@
    12.4  #include "wimax-phy.h"
    12.5  #include "wimax-net-device.h"
    12.6  
    12.7 -namespace ns3 {
    12.8 +namespace ns3
    12.9 +{
   12.10  
   12.11  class SSRecord;
   12.12  class RngReq;
   12.13 @@ -40,8 +41,7 @@
   12.14    /*
   12.15     * \returns the number of available burst profile
   12.16     */
   12.17 -  uint16_t
   12.18 -  GetNrBurstProfilesToDefine (void);
   12.19 +  uint16_t GetNrBurstProfilesToDefine (void);
   12.20  
   12.21    /*
   12.22     * \brief returns the modulation type of a given iuc
   12.23 @@ -49,13 +49,10 @@
   12.24     * \param iuc the iuc
   12.25     * \returns the modulation type of the selected iuc
   12.26     */
   12.27 -  WimaxPhy::ModulationType
   12.28 -  GetModulationType (uint8_t iuc, WimaxNetDevice::Direction direction) const;
   12.29 +  WimaxPhy::ModulationType GetModulationType (uint8_t iuc,
   12.30 +      WimaxNetDevice::Direction direction) const;
   12.31  
   12.32 -
   12.33 -
   12.34 -  uint8_t
   12.35 -  GetBurstProfile (WimaxPhy::ModulationType modulationType,
   12.36 +  uint8_t GetBurstProfile (WimaxPhy::ModulationType modulationType,
   12.37        WimaxNetDevice::Direction direction) const;
   12.38  
   12.39    /*
   12.40 @@ -64,13 +61,11 @@
   12.41     * power, signal etc
   12.42     *
   12.43     */
   12.44 -  uint8_t
   12.45 -  GetBurstProfileForSS (const SSRecord *ssRecord, const RngReq *rngreq,
   12.46 +  uint8_t GetBurstProfileForSS (const SSRecord *ssRecord, const RngReq *rngreq,
   12.47        WimaxPhy::ModulationType &modulationType);
   12.48 -  WimaxPhy::ModulationType
   12.49 -  GetModulationTypeForSS (const SSRecord *ssRecord, const RngReq *rngreq);
   12.50 -  uint8_t
   12.51 -  GetBurstProfileToRequest (void);
   12.52 +  WimaxPhy::ModulationType GetModulationTypeForSS (const SSRecord *ssRecord,
   12.53 +      const RngReq *rngreq);
   12.54 +  uint8_t GetBurstProfileToRequest (void);
   12.55  private:
   12.56    Ptr<WimaxNetDevice> m_device;
   12.57  };
    13.1 --- a/src/devices/wimax/connection-identifier-factory.cc	Tue Nov 10 14:36:17 2009 +0100
    13.2 +++ b/src/devices/wimax/connection-identifier-factory.cc	Tue Nov 10 15:05:38 2009 +0100
    13.3 @@ -22,8 +22,8 @@
    13.4  #include "connection-identifier-factory.h"
    13.5  #include "ns3/uinteger.h"
    13.6  
    13.7 -
    13.8 -namespace ns3 {
    13.9 +namespace ns3
   13.10 +{
   13.11  
   13.12  ConnectionIdentifierFactory::ConnectionIdentifierFactory (void) :
   13.13    m_nrBasicPrimaryCids (MAX_BASIC_CID), //21760 CIDs for each of the basic, primary and transport connections
   13.14 @@ -34,8 +34,7 @@
   13.15  {
   13.16  }
   13.17  
   13.18 -Ptr<ConnectionIdentifier>
   13.19 -ConnectionIdentifierFactory::GetNextBasicCid (void)
   13.20 +Ptr<ConnectionIdentifier> ConnectionIdentifierFactory::GetNextBasicCid (void)
   13.21  {
   13.22    Ptr<ConnectionIdentifier> cid;
   13.23    cid = CreateObject<ConnectionIdentifier> (m_basicIdentifier++);
   13.24 @@ -44,8 +43,7 @@
   13.25  
   13.26  }
   13.27  
   13.28 -Ptr<ConnectionIdentifier>
   13.29 -ConnectionIdentifierFactory::GetNextPrimaryCid (void)
   13.30 +Ptr<ConnectionIdentifier> ConnectionIdentifierFactory::GetNextPrimaryCid (void)
   13.31  {
   13.32    Ptr<ConnectionIdentifier> cid;
   13.33    cid = CreateObject<ConnectionIdentifier> (m_primaryIdentifier++);
   13.34 @@ -54,8 +52,8 @@
   13.35  
   13.36  }
   13.37  
   13.38 -Ptr<ConnectionIdentifier>
   13.39 -ConnectionIdentifierFactory::GetNextTransportOrSecondaryCid (void)
   13.40 +Ptr<ConnectionIdentifier> ConnectionIdentifierFactory::GetNextTransportOrSecondaryCid (
   13.41 +    void)
   13.42  {
   13.43    NS_ASSERT_MSG (
   13.44        m_transportOrSecondaryIdentifier <= MAX_TRANSPORT_OR_SECONDARY_CID,
   13.45 @@ -66,8 +64,8 @@
   13.46    return cid;
   13.47  }
   13.48  
   13.49 -Ptr<ConnectionIdentifier>
   13.50 -ConnectionIdentifierFactory::GetNextMulticastCid (void)
   13.51 +Ptr<ConnectionIdentifier> ConnectionIdentifierFactory::GetNextMulticastCid (
   13.52 +    void)
   13.53  {
   13.54    NS_ASSERT_MSG (m_multicastPollingIdentifier <= MAX_MULTICAST_CID,
   13.55        "CID of multicast connection out of range (max connection reached)"); //must be allocated in range 0xFF00 - 0xFFFD
   13.56 @@ -77,8 +75,8 @@
   13.57    return cid;
   13.58  }
   13.59  
   13.60 -WimaxConnection::ConnectionType
   13.61 -ConnectionIdentifierFactory::GetCidType (Ptr<const ConnectionIdentifier> cid) const
   13.62 +WimaxConnection::ConnectionType ConnectionIdentifierFactory::GetCidType (Ptr<
   13.63 +    const ConnectionIdentifier> cid) const
   13.64  {
   13.65    WimaxConnection::ConnectionType type =
   13.66        WimaxConnection::CONNECTION_TYPE_UNINITIALIZED;//initialize the variable for compiling in optimized mode
   13.67 @@ -88,31 +86,25 @@
   13.68    if (identifier == ConnectionIdentifier::CID_INITIAL_RANGING)
   13.69      {
   13.70        type = WimaxConnection::CONNECTION_TYPE_INITIAL_RANGING;
   13.71 -    }
   13.72 -  else if (identifier >= BASIC_CID && identifier <= m_nrBasicPrimaryCids)
   13.73 +    } else if (identifier >= BASIC_CID && identifier <= m_nrBasicPrimaryCids)
   13.74      {
   13.75        type = WimaxConnection::CONNECTION_TYPE_BASIC;
   13.76 -    }
   13.77 -  else if (identifier >= m_nrBasicPrimaryCids + 1 && identifier <= 2*
   13.78 +    } else if (identifier >= m_nrBasicPrimaryCids + 1 && identifier <= 2*
   13.79        m_nrBasicPrimaryCids )
   13.80      {
   13.81        type = WimaxConnection::CONNECTION_TYPE_PRIMARY;
   13.82 -    }
   13.83 -  else if (identifier >= 2* m_nrBasicPrimaryCids + 1 && identifier
   13.84 +    } else if (identifier >= 2* m_nrBasicPrimaryCids + 1 && identifier
   13.85        <= MAX_TRANSPORT_OR_SECONDARY_CID)
   13.86      {
   13.87        type = WimaxConnection::CONNECTION_TYPE_TRANSPORT;
   13.88 -    }
   13.89 -  else if (identifier == ConnectionIdentifier::CID_BROADCAST)
   13.90 +    } else if (identifier == ConnectionIdentifier::CID_BROADCAST)
   13.91      {
   13.92        type = WimaxConnection::CONNECTION_TYPE_BROADCAST;
   13.93 -    }
   13.94 -  else if (identifier >= MULTICAST_POLLING_CID && identifier
   13.95 +    } else if (identifier >= MULTICAST_POLLING_CID && identifier
   13.96        <= MAX_MULTICAST_CID)
   13.97      {
   13.98        type = WimaxConnection::CONNECTION_TYPE_MULTICAST;
   13.99 -    }
  13.100 -  else if (identifier == ConnectionIdentifier::CID_PADDING)
  13.101 +    } else if (identifier == ConnectionIdentifier::CID_PADDING)
  13.102      {
  13.103        type = WimaxConnection::CONNECTION_TYPE_PADDING;
  13.104      }
    14.1 --- a/src/devices/wimax/connection-identifier-factory.h	Tue Nov 10 14:36:17 2009 +0100
    14.2 +++ b/src/devices/wimax/connection-identifier-factory.h	Tue Nov 10 15:05:38 2009 +0100
    14.3 @@ -31,7 +31,8 @@
    14.4  #include "connection-identifier.h"
    14.5  #include "wimax-connection.h"
    14.6  
    14.7 -namespace ns3 {
    14.8 +namespace ns3
    14.9 +{
   14.10  
   14.11  class ConnectionIdentifierFactory
   14.12  {
   14.13 @@ -41,89 +42,78 @@
   14.14     * \brief This function returns the next basic CID.
   14.15     * \returns the next basic CID.
   14.16     */
   14.17 -  Ptr<ConnectionIdentifier>
   14.18 -  GetNextBasicCid (void);
   14.19 +  Ptr<ConnectionIdentifier> GetNextBasicCid (void);
   14.20    /**
   14.21     * \brief This function returns the next primary basic CID.
   14.22     * \returns the next primary CID.
   14.23     */
   14.24 -  Ptr<ConnectionIdentifier>
   14.25 -  GetNextPrimaryCid (void);
   14.26 +  Ptr<ConnectionIdentifier> GetNextPrimaryCid (void);
   14.27  
   14.28    /**
   14.29     * \brief This function returns the next Transport (or Secondary) CID.
   14.30     * \returns the next Transport (or Secondary) CID.
   14.31     */
   14.32 -  Ptr<ConnectionIdentifier>
   14.33 -  GetNextTransportOrSecondaryCid (void);
   14.34 +  Ptr<ConnectionIdentifier> GetNextTransportOrSecondaryCid (void);
   14.35  
   14.36    /**
   14.37     * \brief This function returns the next Multicast CID.
   14.38     * \returns the next Multicast CID.
   14.39     */
   14.40 -  Ptr<ConnectionIdentifier>
   14.41 -  GetNextMulticastCid (void);
   14.42 +  Ptr<ConnectionIdentifier> GetNextMulticastCid (void);
   14.43  
   14.44    /**
   14.45     * \brief This function returns connection type.
   14.46     * \param cid a pointer to a connection identifier
   14.47     * \returns the connection type
   14.48     */
   14.49 -  WimaxConnection::ConnectionType
   14.50 -  GetCidType (Ptr<const ConnectionIdentifier> cid) const;
   14.51 +  WimaxConnection::ConnectionType GetCidType (
   14.52 +      Ptr<const ConnectionIdentifier> cid) const;
   14.53  
   14.54    /**
   14.55     * \brief This function returns true (1) if the connection is of type initial ranging.
   14.56     * \param cid a pointer to a connection identifier
   14.57     * \returns true (1) if the connection is of type initial ranging, false (0) otherwise
   14.58     */
   14.59 -  bool
   14.60 -  IsInitialRanging (Ptr<ConnectionIdentifier> cid);
   14.61 +  bool IsInitialRanging (Ptr<ConnectionIdentifier> cid);
   14.62  
   14.63    /**
   14.64     * \brief This function returns true (1) if the connection is of type basic.
   14.65     * \param cid a pointer to a connection identifier
   14.66     * \returns true (1) if the connection is of type basic, false (0) otherwise
   14.67     */
   14.68 -  bool
   14.69 -  IsBasic (Ptr<ConnectionIdentifier> cid);
   14.70 +  bool IsBasic (Ptr<ConnectionIdentifier> cid);
   14.71    /**
   14.72     * \brief This function returns true (1) if the connection is of type primary.
   14.73     * \param cid a pointer to a connection identifier
   14.74     * \returns true (1) if the connection is of type primary, false (0) otherwise
   14.75     */
   14.76 -  bool
   14.77 -  IsPrimary (Ptr<ConnectionIdentifier> cid);
   14.78 +  bool IsPrimary (Ptr<ConnectionIdentifier> cid);
   14.79  
   14.80    /**
   14.81     * \brief This function returns true (1) if the connection is of type transport or secondary.
   14.82     * \param cid a pointer to a connection identifier
   14.83     * \returns true (1) if the connection is of type transport or secondary, false (0) otherwise
   14.84     */
   14.85 -  bool
   14.86 -  IsTransportOrSecondary (Ptr<ConnectionIdentifier> cid);
   14.87 +  bool IsTransportOrSecondary (Ptr<ConnectionIdentifier> cid);
   14.88  
   14.89    /**
   14.90     * \brief This function returns true (1) if the connection is of type multicast.
   14.91     * \param cid a pointer to a connection identifier
   14.92     * \returns true (1) if the connection is of type multicast, false (0) otherwise
   14.93     */
   14.94 -  bool
   14.95 -  IsMulticast (Ptr<ConnectionIdentifier> cid);
   14.96 +  bool IsMulticast (Ptr<ConnectionIdentifier> cid);
   14.97    /**
   14.98     * \brief This function returns true (1) if the connection is of type primary.
   14.99     * \param cid a pointer to a connection identifier
  14.100     * \returns true (1) if the connection is of type primary, false (0) otherwise
  14.101     */
  14.102 -  bool
  14.103 -  IsPadding (Ptr<ConnectionIdentifier> cid);
  14.104 +  bool IsPadding (Ptr<ConnectionIdentifier> cid);
  14.105    /**
  14.106     * \brief This function returns true (1) if the connection is of type padding.
  14.107     * \param cid a pointer to a connection identifier
  14.108     * \returns true (1) if the connection is of type padding, false (0) otherwise
  14.109     */
  14.110 -  bool
  14.111 -  IsBroadcast (Ptr<ConnectionIdentifier> cid);
  14.112 +  bool IsBroadcast (Ptr<ConnectionIdentifier> cid);
  14.113  
  14.114  private:
  14.115    uint16_t m_nrBasicPrimaryCids; //m in Table 345
    15.1 --- a/src/devices/wimax/connection-identifier.cc	Tue Nov 10 14:36:17 2009 +0100
    15.2 +++ b/src/devices/wimax/connection-identifier.cc	Tue Nov 10 15:05:38 2009 +0100
    15.3 @@ -21,12 +21,12 @@
    15.4  #include "connection-identifier.h"
    15.5  #include "ns3/uinteger.h"
    15.6  
    15.7 -namespace ns3 {
    15.8 +namespace ns3
    15.9 +{
   15.10  
   15.11  NS_OBJECT_ENSURE_REGISTERED ( ConnectionIdentifier);
   15.12  
   15.13 -TypeId
   15.14 -ConnectionIdentifier::GetTypeId (void)
   15.15 +TypeId ConnectionIdentifier::GetTypeId (void)
   15.16  {
   15.17    static TypeId
   15.18        tid =
   15.19 @@ -54,31 +54,28 @@
   15.20    m_identifier = 0;
   15.21  }
   15.22  
   15.23 -void
   15.24 -ConnectionIdentifier::SetIdentifier (uint16_t identifier)
   15.25 +void ConnectionIdentifier::SetIdentifier (uint16_t identifier)
   15.26  {
   15.27    m_identifier = identifier;
   15.28  }
   15.29  
   15.30 -uint16_t
   15.31 -ConnectionIdentifier::GetIdentifier (void) const
   15.32 +uint16_t ConnectionIdentifier::GetIdentifier (void) const
   15.33  {
   15.34    return m_identifier;
   15.35  }
   15.36  
   15.37 -bool
   15.38 -ConnectionIdentifier::IsMulticast (void) const
   15.39 +bool ConnectionIdentifier::IsMulticast (void) const
   15.40  {
   15.41    return (m_identifier >= 0xFF00);
   15.42  }
   15.43 -bool
   15.44 -operator == (const ConnectionIdentifier &lhs, const ConnectionIdentifier &rhs)
   15.45 +bool operator == (const ConnectionIdentifier &lhs,
   15.46 +    const ConnectionIdentifier &rhs)
   15.47  {
   15.48    return lhs.m_identifier == rhs.m_identifier;
   15.49  }
   15.50  
   15.51 -bool
   15.52 -operator != (const ConnectionIdentifier &lhs, const ConnectionIdentifier &rhs)
   15.53 +bool operator != (const ConnectionIdentifier &lhs,
   15.54 +    const ConnectionIdentifier &rhs)
   15.55  {
   15.56    return !(lhs == rhs);
   15.57  }
   15.58 @@ -91,43 +88,37 @@
   15.59    return lhs.m_identifier == rhs->m_identifier;
   15.60  }
   15.61  
   15.62 -bool
   15.63 -operator != (const ConnectionIdentifier &lhs,
   15.64 -    const Ptr<ConnectionIdentifier> &rhs)
   15.65 +bool operator != (const ConnectionIdentifier &lhs, const Ptr<
   15.66 +    ConnectionIdentifier> &rhs)
   15.67  {
   15.68    return !(lhs == rhs);
   15.69  }
   15.70  
   15.71 -uint32_t
   15.72 -ConnectionIdentifier::GetSize (void) const
   15.73 +uint32_t ConnectionIdentifier::GetSize (void) const
   15.74  {
   15.75    return 2;
   15.76  }
   15.77  
   15.78 -void
   15.79 -ConnectionIdentifier::Print (std::ostream &os) const
   15.80 +void ConnectionIdentifier::Print (std::ostream &os) const
   15.81  {
   15.82    os << "" << (uint32_t) m_identifier;
   15.83  }
   15.84  
   15.85 -Buffer::Iterator
   15.86 -ConnectionIdentifier::Write (Buffer::Iterator start) const
   15.87 +Buffer::Iterator ConnectionIdentifier::Write (Buffer::Iterator start) const
   15.88  {
   15.89    Buffer::Iterator i = start;
   15.90    i.WriteU16 (m_identifier);
   15.91    return i;
   15.92  }
   15.93  
   15.94 -Buffer::Iterator
   15.95 -ConnectionIdentifier::Read (Buffer::Iterator start)
   15.96 +Buffer::Iterator ConnectionIdentifier::Read (Buffer::Iterator start)
   15.97  {
   15.98    Buffer::Iterator i = start;
   15.99    m_identifier = i.ReadU16 ();
  15.100    return i;
  15.101  }
  15.102  
  15.103 -Ptr<ConnectionIdentifier>
  15.104 -ConnectionIdentifier::Copy () const
  15.105 +Ptr<ConnectionIdentifier> ConnectionIdentifier::Copy () const
  15.106  {
  15.107    return CopyObject<ConnectionIdentifier> (this);
  15.108  }
    16.1 --- a/src/devices/wimax/connection-identifier.h	Tue Nov 10 14:36:17 2009 +0100
    16.2 +++ b/src/devices/wimax/connection-identifier.h	Tue Nov 10 15:05:38 2009 +0100
    16.3 @@ -26,9 +26,10 @@
    16.4  #include "ns3/header.h"
    16.5  #include "ns3/object.h"
    16.6  
    16.7 -namespace ns3 {
    16.8 +namespace ns3
    16.9 +{
   16.10  
   16.11 -class ConnectionIdentifier : public Object
   16.12 +class ConnectionIdentifier: public Object
   16.13  {
   16.14  public:
   16.15    enum Identifier
   16.16 @@ -39,52 +40,39 @@
   16.17      CID_PADDING = 0xFFFE
   16.18    };
   16.19  
   16.20 -  static TypeId
   16.21 -  GetTypeId (void);
   16.22 +  static TypeId GetTypeId (void);
   16.23    ConnectionIdentifier (void);
   16.24    ConnectionIdentifier (uint16_t);
   16.25    ~ConnectionIdentifier (void);
   16.26  
   16.27 -  void
   16.28 -  SetIdentifier (uint16_t identifier);
   16.29 -  uint16_t
   16.30 -  GetIdentifier (void) const;
   16.31 -  bool
   16.32 -  IsMulticast (void) const;
   16.33 -  uint32_t
   16.34 -  GetSize (void) const;
   16.35 -  void
   16.36 -  Print (std::ostream &os) const;
   16.37 +  void SetIdentifier (uint16_t identifier);
   16.38 +  uint16_t GetIdentifier (void) const;
   16.39 +  bool IsMulticast (void) const;
   16.40 +  uint32_t GetSize (void) const;
   16.41 +  void Print (std::ostream &os) const;
   16.42  
   16.43 -  Buffer::Iterator
   16.44 -  Write (Buffer::Iterator start) const;
   16.45 -  Buffer::Iterator
   16.46 -  Read (Buffer::Iterator start);
   16.47 +  Buffer::Iterator Write (Buffer::Iterator start) const;
   16.48 +  Buffer::Iterator Read (Buffer::Iterator start);
   16.49  
   16.50 -  Ptr<ConnectionIdentifier>
   16.51 -  Copy () const;
   16.52 +  Ptr<ConnectionIdentifier> Copy () const;
   16.53  private:
   16.54 -  friend bool
   16.55 -      operator == (const ConnectionIdentifier &lhs,
   16.56 -          const ConnectionIdentifier &rhs);
   16.57 -  friend bool
   16.58 -  operator == (const ConnectionIdentifier &lhs,
   16.59 -      const Ptr<ConnectionIdentifier> &rhs);
   16.60 +  friend bool operator == (const ConnectionIdentifier &lhs,
   16.61 +      const ConnectionIdentifier &rhs);
   16.62 +  friend bool operator == (const ConnectionIdentifier &lhs, const Ptr<
   16.63 +      ConnectionIdentifier> &rhs);
   16.64  
   16.65    uint16_t m_identifier;
   16.66  };
   16.67  
   16.68 -bool
   16.69 -operator == (const ConnectionIdentifier &lhs, const ConnectionIdentifier &rhs);
   16.70 -bool
   16.71 -operator != (const ConnectionIdentifier &lhs, const ConnectionIdentifier &rhs);
   16.72 +bool operator == (const ConnectionIdentifier &lhs,
   16.73 +    const ConnectionIdentifier &rhs);
   16.74 +bool operator != (const ConnectionIdentifier &lhs,
   16.75 +    const ConnectionIdentifier &rhs);
   16.76  
   16.77 -bool
   16.78 -operator == (const ConnectionIdentifier &lhs,
   16.79 -    const Ptr<ConnectionIdentifier> &rhs);
   16.80 -bool
   16.81 -operator != (const ConnectionIdentifier &lhs,
   16.82 -    const Ptr<ConnectionIdentifier> &rhs);
   16.83 +bool operator == (const ConnectionIdentifier &lhs, const Ptr<
   16.84 +    ConnectionIdentifier> &rhs);
   16.85 +bool operator != (const ConnectionIdentifier &lhs, const Ptr<
   16.86 +    ConnectionIdentifier> &rhs);
   16.87  }
   16.88  ; // namespace ns3
   16.89  
    17.1 --- a/src/devices/wimax/connection-manager.cc	Tue Nov 10 14:36:17 2009 +0100
    17.2 +++ b/src/devices/wimax/connection-manager.cc	Tue Nov 10 15:05:38 2009 +0100
    17.3 @@ -31,7 +31,8 @@
    17.4  
    17.5  NS_LOG_COMPONENT_DEFINE ("ConnectionManager");
    17.6  
    17.7 -namespace ns3 {
    17.8 +namespace ns3
    17.9 +{
   17.10  
   17.11  ConnectionManager::ConnectionManager (void) :
   17.12    m_cidFactory (0), m_connectionSetupList (new std::list<std::pair<std::pair<
   17.13 @@ -49,14 +50,12 @@
   17.14    m_connectionSetupList = 0;
   17.15  }
   17.16  
   17.17 -void
   17.18 -ConnectionManager::SetCidFactory (ConnectionIdentifierFactory *cidFactory)
   17.19 +void ConnectionManager::SetCidFactory (ConnectionIdentifierFactory *cidFactory)
   17.20  {
   17.21    m_cidFactory = cidFactory;
   17.22  }
   17.23  
   17.24 -void
   17.25 -ConnectionManager::AllocateManagementConnections (SSRecord *ssRecord,
   17.26 +void ConnectionManager::AllocateManagementConnections (SSRecord *ssRecord,
   17.27      RngRsp *rngrsp)
   17.28  {
   17.29    Ptr<WimaxConnection> basicConnection = CreateConnection (ssRecord,
   17.30 @@ -71,8 +70,7 @@
   17.31    rngrsp->SetPrimaryCid (*primaryConnection->GetCid ());
   17.32  }
   17.33  
   17.34 -Ptr<WimaxConnection>
   17.35 -ConnectionManager::CreateConnection (SSRecord *ssRecord,
   17.36 +Ptr<WimaxConnection> ConnectionManager::CreateConnection (SSRecord *ssRecord,
   17.37      WimaxConnection::ConnectionType connectionType)
   17.38  {
   17.39    Ptr<WimaxConnection> connection;
   17.40 @@ -101,7 +99,7 @@
   17.41        if (cid == 0)
   17.42          cid = GetSetupConnection (ssRecord->GetMacAddress ());
   17.43  
   17.44 -      NS_ASSERT_MSG (cid,"Error while creating connection: CID should be > 0");
   17.45 +      NS_ASSERT_MSG (cid, "Error while creating connection: CID should be > 0");
   17.46  
   17.47        connection = CreateObject<WimaxConnection> (cid, connectionType);
   17.48        AddConnection (connection, WimaxConnection::CONNECTION_TYPE_TRANSPORT);
   17.49 @@ -119,8 +117,7 @@
   17.50    return connection;
   17.51  }
   17.52  
   17.53 -void
   17.54 -ConnectionManager::AddConnection (Ptr<WimaxConnection> connection,
   17.55 +void ConnectionManager::AddConnection (Ptr<WimaxConnection> connection,
   17.56      WimaxConnection::ConnectionType connectionType)
   17.57  {
   17.58    switch (connectionType)
   17.59 @@ -143,8 +140,8 @@
   17.60      }
   17.61  }
   17.62  
   17.63 -Ptr<WimaxConnection>
   17.64 -ConnectionManager::GetConnection (Ptr<const ConnectionIdentifier> cid)
   17.65 +Ptr<WimaxConnection> ConnectionManager::GetConnection (Ptr<
   17.66 +    const ConnectionIdentifier> cid)
   17.67  {
   17.68    std::vector<Ptr<WimaxConnection> >::const_iterator iter;
   17.69  
   17.70 @@ -171,8 +168,7 @@
   17.71    return 0;
   17.72  }
   17.73  
   17.74 -std::vector<Ptr<WimaxConnection> >
   17.75 -ConnectionManager::GetConnections (
   17.76 +std::vector<Ptr<WimaxConnection> > ConnectionManager::GetConnections (
   17.77      WimaxConnection::ConnectionType connectionType) const
   17.78  {
   17.79    std::vector<Ptr<WimaxConnection> > connections;
   17.80 @@ -196,8 +192,8 @@
   17.81    return connections;
   17.82  }
   17.83  
   17.84 -uint32_t
   17.85 -ConnectionManager::GetNPackets (WimaxConnection::ConnectionType connectionType,
   17.86 +uint32_t ConnectionManager::GetNPackets (
   17.87 +    WimaxConnection::ConnectionType connectionType,
   17.88      QoSParameterSet::SchedulingType schedulingType) const
   17.89  {
   17.90    uint32_t nrPackets = 0;
   17.91 @@ -242,8 +238,7 @@
   17.92    return nrPackets;
   17.93  }
   17.94  
   17.95 -bool
   17.96 -ConnectionManager::HasPackets (void) const
   17.97 +bool ConnectionManager::HasPackets (void) const
   17.98  {
   17.99    std::vector<Ptr<WimaxConnection> >::const_iterator iter;
  17.100    for (iter = m_basicConnections.begin (); iter != m_basicConnections.end (); ++iter)
  17.101 @@ -269,9 +264,9 @@
  17.102    return false;
  17.103  }
  17.104  
  17.105 -void
  17.106 -ConnectionManager::SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss1,
  17.107 -    Ptr<WimaxSubscriberStationNetDevice> ss2)
  17.108 +void ConnectionManager::SetupConnection (
  17.109 +    Ptr<WimaxSubscriberStationNetDevice> ss1, Ptr<
  17.110 +        WimaxSubscriberStationNetDevice> ss2)
  17.111  {
  17.112    std::pair<Mac48Address, Ptr<ConnectionIdentifier> > peer1 = std::make_pair (
  17.113        ss1->GetMacAddress (), m_cidFactory->GetNextTransportOrSecondaryCid ());
  17.114 @@ -281,8 +276,8 @@
  17.115    m_connectionSetupList->push_back (std::make_pair (peer1, peer2));
  17.116  }
  17.117  
  17.118 -void
  17.119 -ConnectionManager::SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss)
  17.120 +void ConnectionManager::SetupConnection (
  17.121 +    Ptr<WimaxSubscriberStationNetDevice> ss)
  17.122  {
  17.123    Ptr<ConnectionIdentifier> cid =
  17.124        m_cidFactory->GetNextTransportOrSecondaryCid ();
  17.125 @@ -292,8 +287,8 @@
  17.126    m_connectionSetupList2->push_back (peer);
  17.127  }
  17.128  
  17.129 -Ptr<ConnectionIdentifier>
  17.130 -ConnectionManager::GetSetupConnection (const Mac48Address &address) const
  17.131 +Ptr<ConnectionIdentifier> ConnectionManager::GetSetupConnection (
  17.132 +    const Mac48Address &address) const
  17.133  {
  17.134    //assumes there is only one transport connection per SS, otherwise will return only the first one
  17.135  
  17.136 @@ -313,8 +308,7 @@
  17.137          {
  17.138            cid = pair.first.second;
  17.139            break;
  17.140 -        }
  17.141 -      else if (address == pair.second.first)
  17.142 +        } else if (address == pair.second.first)
  17.143          {
  17.144            cid = pair.second.second;
  17.145            break;
  17.146 @@ -328,8 +322,8 @@
  17.147    return cid;
  17.148  }
  17.149  
  17.150 -Ptr<ConnectionIdentifier>
  17.151 -ConnectionManager::GetSetupConnection2 (const Mac48Address &address) const
  17.152 +Ptr<ConnectionIdentifier> ConnectionManager::GetSetupConnection2 (
  17.153 +    const Mac48Address &address) const
  17.154  {
  17.155    //assumes there is only one transport connection per SS, otherwise will return only the first one
  17.156  
  17.157 @@ -353,8 +347,8 @@
  17.158    return cid;
  17.159  }
  17.160  
  17.161 -Mac48Address
  17.162 -ConnectionManager::GetDestAddress2 (const ConnectionIdentifier &cid) const
  17.163 +Mac48Address ConnectionManager::GetDestAddress2 (
  17.164 +    const ConnectionIdentifier &cid) const
  17.165  {
  17.166    Mac48Address address;
  17.167    std::pair<Mac48Address, Ptr<ConnectionIdentifier> > pair;
  17.168 @@ -378,8 +372,7 @@
  17.169  
  17.170  }
  17.171  
  17.172 -Mac48Address
  17.173 -ConnectionManager::GetDestAddress (const ConnectionIdentifier &cid) const
  17.174 +Mac48Address ConnectionManager::GetDestAddress (const ConnectionIdentifier &cid) const
  17.175  {
  17.176    Mac48Address address;
  17.177    std::pair<Mac48Address, Ptr<ConnectionIdentifier> > peer1, peer2;
  17.178 @@ -399,8 +392,7 @@
  17.179            address = pair.second.first;
  17.180            find = true;
  17.181            break;
  17.182 -        }
  17.183 -      else if (cid == pair.second.second)
  17.184 +        } else if (cid == pair.second.second)
  17.185          {
  17.186            address = pair.first.first;
  17.187            find = true;
    18.1 --- a/src/devices/wimax/connection-manager.h	Tue Nov 10 14:36:17 2009 +0100
    18.2 +++ b/src/devices/wimax/connection-manager.h	Tue Nov 10 15:05:38 2009 +0100
    18.3 @@ -27,7 +27,8 @@
    18.4  #include "qos-parameter-set.h"
    18.5  #include "ns3/mac48-address.h"
    18.6  
    18.7 -namespace ns3 {
    18.8 +namespace ns3
    18.9 +{
   18.10  
   18.11  class ConnectionIdentifierFactory;
   18.12  class SSRecord;
   18.13 @@ -44,51 +45,40 @@
   18.14  public:
   18.15    ConnectionManager (void);
   18.16    ~ConnectionManager (void);
   18.17 -  void
   18.18 -  SetCidFactory (ConnectionIdentifierFactory *cidFactory);
   18.19 -  void
   18.20 -  AllocateManagementConnections (SSRecord *ssRecord, RngRsp *rngrsp);
   18.21 -  Ptr<WimaxConnection>
   18.22 -  CreateConnection (SSRecord *ssRecord,
   18.23 +  void SetCidFactory (ConnectionIdentifierFactory *cidFactory);
   18.24 +  void AllocateManagementConnections (SSRecord *ssRecord, RngRsp *rngrsp);
   18.25 +  Ptr<WimaxConnection> CreateConnection (SSRecord *ssRecord,
   18.26        WimaxConnection::ConnectionType connectionType);
   18.27 -  void
   18.28 -  AddConnection (Ptr<WimaxConnection> connection,
   18.29 +  void AddConnection (Ptr<WimaxConnection> connection,
   18.30        WimaxConnection::ConnectionType connectionType);
   18.31 -  Ptr<WimaxConnection>
   18.32 -  GetConnection (Ptr<const ConnectionIdentifier> cid);
   18.33 -  std::vector<Ptr<WimaxConnection> >
   18.34 -  GetConnections (WimaxConnection::ConnectionType connectionType) const;
   18.35 -  uint32_t
   18.36 -  GetNPackets (WimaxConnection::ConnectionType connectionType,
   18.37 +  Ptr<WimaxConnection> GetConnection (Ptr<const ConnectionIdentifier> cid);
   18.38 +  std::vector<Ptr<WimaxConnection> > GetConnections (
   18.39 +      WimaxConnection::ConnectionType connectionType) const;
   18.40 +  uint32_t GetNPackets (WimaxConnection::ConnectionType connectionType,
   18.41        QoSParameterSet::SchedulingType schedulingType) const;
   18.42 -  bool
   18.43 -  HasPackets (void) const;
   18.44 +  bool HasPackets (void) const;
   18.45  
   18.46    /*
   18.47     Only for BS, called from application level, setups connection between two subscriber
   18.48     stations (and their transport connections)
   18.49     */
   18.50 -  void
   18.51 -  SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss1, Ptr<
   18.52 +  void SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss1, Ptr<
   18.53        WimaxSubscriberStationNetDevice> ss2);
   18.54 -  void
   18.55 -  SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss1);
   18.56 +  void SetupConnection (Ptr<WimaxSubscriberStationNetDevice> ss1);
   18.57    /*
   18.58     Only for BS, retrieves CID already assigned during connection setup at application level
   18.59     */
   18.60    Ptr<ConnectionIdentifier>
   18.61 -  GetSetupConnection (const Mac48Address &address) const;
   18.62 +      GetSetupConnection (const Mac48Address &address) const;
   18.63  
   18.64    Ptr<ConnectionIdentifier>
   18.65 -  GetSetupConnection2 (const Mac48Address &address) const;
   18.66 +      GetSetupConnection2 (const Mac48Address &address) const;
   18.67    /*
   18.68     Only for BS, retrieves other peer's (destination's) CID corresponding to this CID (of source)
   18.69     as setup at application level, and retrieves the MAC address of the peer/destination
   18.70     */
   18.71 -  Mac48Address
   18.72 -  GetDestAddress (const ConnectionIdentifier &cid) const;
   18.73 -  Mac48Address
   18.74 -  GetDestAddress2 (const ConnectionIdentifier &cid) const;
   18.75 +  Mac48Address GetDestAddress (const ConnectionIdentifier &cid) const;
   18.76 +  Mac48Address GetDestAddress2 (const ConnectionIdentifier &cid) const;
   18.77  private:
   18.78    //the following two are only for BS, SS only has one basic and primary CID and maintains as its members
   18.79    std::vector<Ptr<WimaxConnection> > m_basicConnections;
    19.1 --- a/src/devices/wimax/cost231-propagation-model.cc	Tue Nov 10 14:36:17 2009 +0100
    19.2 +++ b/src/devices/wimax/cost231-propagation-model.cc	Tue Nov 10 15:05:38 2009 +0100
    19.3 @@ -27,13 +27,13 @@
    19.4  #include <math.h>
    19.5  #include "cost231-propagation-model.h"
    19.6  
    19.7 -namespace ns3 {
    19.8 +namespace ns3
    19.9 +{
   19.10  
   19.11  NS_LOG_COMPONENT_DEFINE ("cost231PropagationModel");
   19.12  NS_OBJECT_ENSURE_REGISTERED ( Cost231Propagation);
   19.13  
   19.14 -TypeId
   19.15 -Cost231Propagation::GetTypeId (void)
   19.16 +TypeId Cost231Propagation::GetTypeId (void)
   19.17  {
   19.18    static TypeId
   19.19        tid =
   19.20 @@ -66,85 +66,71 @@
   19.21    m_shadowing = 10;
   19.22  }
   19.23  
   19.24 -void
   19.25 -Cost231Propagation::SetLambda (double frequency, double speed)
   19.26 +void Cost231Propagation::SetLambda (double frequency, double speed)
   19.27  {
   19.28    m_lambda = speed / frequency;
   19.29    m_frequency = frequency;
   19.30  }
   19.31  
   19.32 -double
   19.33 -Cost231Propagation::GetShadowing (void)
   19.34 +double Cost231Propagation::GetShadowing (void)
   19.35  {
   19.36    return m_shadowing;
   19.37  }
   19.38 -void
   19.39 -Cost231Propagation::SetShadowing (double shadowing)
   19.40 +void Cost231Propagation::SetShadowing (double shadowing)
   19.41  {
   19.42    m_shadowing = shadowing;
   19.43  }
   19.44  
   19.45 -void
   19.46 -Cost231Propagation::SetLambda (double lambda)
   19.47 +void Cost231Propagation::SetLambda (double lambda)
   19.48  {
   19.49    m_lambda = lambda;
   19.50    m_frequency = 300000000 / lambda;
   19.51  }
   19.52  
   19.53 -double
   19.54 -Cost231Propagation::GetLambda (void) const
   19.55 +double Cost231Propagation::GetLambda (void) const
   19.56  {
   19.57    return m_lambda;
   19.58  }
   19.59  
   19.60 -void
   19.61 -Cost231Propagation::SetMinDistance (double minDistance)
   19.62 +void Cost231Propagation::SetMinDistance (double minDistance)
   19.63  {
   19.64    m_minDistance = minDistance;
   19.65  }
   19.66 -double
   19.67 -Cost231Propagation::GetMinDistance (void) const
   19.68 +double Cost231Propagation::GetMinDistance (void) const
   19.69  {
   19.70    return m_minDistance;
   19.71  }
   19.72  
   19.73 -void
   19.74 -Cost231Propagation::SetBSAntennaHeight (double height)
   19.75 +void Cost231Propagation::SetBSAntennaHeight (double height)
   19.76  {
   19.77    m_BSAntennaHeight = height;
   19.78  }
   19.79  
   19.80 -double
   19.81 -Cost231Propagation::GetBSAntennaHeight (void) const
   19.82 +double Cost231Propagation::GetBSAntennaHeight (void) const
   19.83  {
   19.84    return m_BSAntennaHeight;
   19.85  }
   19.86  
   19.87 -void
   19.88 -Cost231Propagation::SetSSAntennaHeight (double height)
   19.89 +void Cost231Propagation::SetSSAntennaHeight (double height)
   19.90  {
   19.91    m_SSAntennaHeight = height;
   19.92  }
   19.93  
   19.94 -double
   19.95 -Cost231Propagation::GetSSAntennaHeight (void) const
   19.96 +double Cost231Propagation::GetSSAntennaHeight (void) const
   19.97  {
   19.98    return m_SSAntennaHeight;
   19.99  }
  19.100  
  19.101 -void
  19.102 -Cost231Propagation::SetEnvironment (Environment env)
  19.103 +void Cost231Propagation::SetEnvironment (Environment env)
  19.104  {
  19.105    m_environment = env;
  19.106  }
  19.107 -Cost231Propagation::Environment
  19.108 -Cost231Propagation::GetEnvironment (void) const
  19.109 +Cost231Propagation::Environment Cost231Propagation::GetEnvironment (void) const
  19.110  {
  19.111    return m_environment;
  19.112  }
  19.113  
  19.114 -double
  19.115 -Cost231Propagation::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
  19.116 +double Cost231Propagation::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
  19.117  {
  19.118  
  19.119    double distance = a->GetDistanceFrom (b);
  19.120 @@ -171,8 +157,7 @@
  19.121  
  19.122  }
  19.123  
  19.124 -double
  19.125 -Cost231Propagation::cost231_formula (double d)
  19.126 +double Cost231Propagation::cost231_formula (double d)
  19.127  {
  19.128    double C_H = 0.0; // the mobile antenna height correction factor
  19.129    double log_f = 0.0;
    20.1 --- a/src/devices/wimax/cost231-propagation-model.h	Tue Nov 10 14:36:17 2009 +0100
    20.2 +++ b/src/devices/wimax/cost231-propagation-model.h	Tue Nov 10 15:05:38 2009 +0100
    20.3 @@ -26,7 +26,8 @@
    20.4  #include "ns3/object.h"
    20.5  #include "ns3/random-variable.h"
    20.6  
    20.7 -namespace ns3 {
    20.8 +namespace ns3
    20.9 +{
   20.10  
   20.11  /*
   20.12   *  \brief The COST-Hata-Model is the most often cited of the COST 231 models.
   20.13 @@ -45,12 +46,11 @@
   20.14   *
   20.15   */
   20.16  
   20.17 -class Cost231Propagation : public WimaxPropagation
   20.18 +class Cost231Propagation: public WimaxPropagation
   20.19  {
   20.20  
   20.21  public:
   20.22 -  static TypeId
   20.23 -  GetTypeId (void);
   20.24 +  static TypeId GetTypeId (void);
   20.25    Cost231Propagation ();
   20.26    enum Environment
   20.27    {
   20.28 @@ -62,40 +62,25 @@
   20.29     * \param b the mobility model of the destination
   20.30     * \returns the propagation loss (in dBm)
   20.31     */
   20.32 -  double
   20.33 -  GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
   20.34 -  void
   20.35 -  SetBSAntennaHeight (double height);
   20.36 -  void
   20.37 -  SetSSAntennaHeight (double height);
   20.38 -  void
   20.39 -  SetEnvironment (Environment env);
   20.40 -  void
   20.41 -  SetLambda (double lambda);
   20.42 -  void
   20.43 -  SetMinDistance (double minDistance);
   20.44 -  double
   20.45 -  GetBSAntennaHeight (void) const;
   20.46 -  double
   20.47 -  GetSSAntennaHeight (void) const;
   20.48 -  Environment
   20.49 -  GetEnvironment (void) const;
   20.50 -  double
   20.51 -  GetMinDistance (void) const;
   20.52 -  double
   20.53 -  GetLambda (void) const;
   20.54 -  void
   20.55 -  SetLambda (double frequency, double speed);
   20.56 -  double
   20.57 -  GetShadowing (void);
   20.58 -  void
   20.59 -  SetShadowing (double shadowing);
   20.60 +  double GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
   20.61 +  void SetBSAntennaHeight (double height);
   20.62 +  void SetSSAntennaHeight (double height);
   20.63 +  void SetEnvironment (Environment env);
   20.64 +  void SetLambda (double lambda);
   20.65 +  void SetMinDistance (double minDistance);
   20.66 +  double GetBSAntennaHeight (void) const;
   20.67 +  double GetSSAntennaHeight (void) const;
   20.68 +  Environment GetEnvironment (void) const;
   20.69 +  double GetMinDistance (void) const;
   20.70 +  double GetLambda (void) const;
   20.71 +  void SetLambda (double frequency, double speed);
   20.72 +  double GetShadowing (void);
   20.73 +  void SetShadowing (double shadowing);
   20.74    /**
   20.75     * \param d the distnace between the sender and the receiver
   20.76     * \returns the bulk path loss
   20.77     */
   20.78 -  double
   20.79 -  cost231_formula (double d); // the formula that calculates the bulk path loss
   20.80 +  double cost231_formula (double d); // the formula that calculates the bulk path loss
   20.81  private:
   20.82    double m_BSAntennaHeight; //in meter
   20.83    double m_SSAntennaHeight; //in meter
    21.1 --- a/src/devices/wimax/crc8.cc	Tue Nov 10 14:36:17 2009 +0100
    21.2 +++ b/src/devices/wimax/crc8.cc	Tue Nov 10 15:05:38 2009 +0100
    21.3 @@ -25,32 +25,30 @@
    21.4   *  x^8 + x^2 + x^1 + x^0
    21.5   */
    21.6  
    21.7 -static uint8_t crc8table[256] =
    21.8 -  { 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31,
    21.9 -      0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65,
   21.10 -      0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9,
   21.11 -      0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD,
   21.12 -      0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1,
   21.13 -      0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2,
   21.14 -      0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, 0xB7, 0xB0, 0xB9, 0xBE,
   21.15 -      0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,
   21.16 -      0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16,
   21.17 -      0x03, 0x04, 0x0D, 0x0A, 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,
   21.18 -      0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, 0x89, 0x8E, 0x87, 0x80,
   21.19 -      0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,
   21.20 -      0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8,
   21.21 -      0xDD, 0xDA, 0xD3, 0xD4, 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C,
   21.22 -      0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, 0x19, 0x1E, 0x17, 0x10,
   21.23 -      0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,
   21.24 -      0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F,
   21.25 -      0x6A, 0x6D, 0x64, 0x63, 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B,
   21.26 -      0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, 0xAE, 0xA9, 0xA0, 0xA7,
   21.27 -      0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
   21.28 -      0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF,
   21.29 -      0xFA, 0xFD, 0xF4, 0xF3 };
   21.30 +static uint8_t crc8table[256] = { 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12,
   21.31 +    0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E,
   21.32 +    0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A,
   21.33 +    0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6,
   21.34 +    0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82,
   21.35 +    0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9,
   21.36 +    0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED,
   21.37 +    0xEA, 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81,
   21.38 +    0x86, 0x93, 0x94, 0x9D, 0x9A, 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35,
   21.39 +    0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A, 0x57, 0x50, 0x59,
   21.40 +    0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D,
   21.41 +    0x7A, 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF,
   21.42 +    0xB8, 0xAD, 0xAA, 0xA3, 0xA4, 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB,
   21.43 +    0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, 0x69, 0x6E, 0x67,
   21.44 +    0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43,
   21.45 +    0x44, 0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F,
   21.46 +    0x28, 0x3D, 0x3A, 0x33, 0x34, 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C,
   21.47 +    0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, 0x3E, 0x39, 0x30,
   21.48 +    0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14,
   21.49 +    0x13, 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98,
   21.50 +    0x9F, 0x8A, 0x8D, 0x84, 0x83, 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC,
   21.51 +    0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 };
   21.52  
   21.53 -uint8_t
   21.54 -CRC8Calculate (const void *data, int length)
   21.55 +uint8_t CRC8Calculate (const void *data, int length)
   21.56  {
   21.57  
   21.58    uint8_t crc = 0;
    22.1 --- a/src/devices/wimax/crc8.h	Tue Nov 10 14:36:17 2009 +0100
    22.2 +++ b/src/devices/wimax/crc8.h	Tue Nov 10 15:05:38 2009 +0100
    22.3 @@ -22,7 +22,6 @@
    22.4  #define CRC8_H
    22.5  #include <stdint.h>
    22.6  
    22.7 -uint8_t
    22.8 -CRC8Calculate (const void *data, int length);
    22.9 +uint8_t CRC8Calculate (const void *data, int length);
   22.10  
   22.11  #endif
    23.1 --- a/src/devices/wimax/default-traces.h	Tue Nov 10 14:36:17 2009 +0100
    23.2 +++ b/src/devices/wimax/default-traces.h	Tue Nov 10 15:05:38 2009 +0100
    23.3 @@ -22,152 +22,130 @@
    23.4  #ifndef DEFAULTTRACES_H_
    23.5  #define DEFAULTTRACES_H_
    23.6  
    23.7 -double modulation0[6][29] =
    23.8 -  {
    23.9 -    { 0.00, 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10,
   23.10 -        1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30,
   23.11 -        2.40, 2.50, 2.60, 2.70, 2.80 },
   23.12 -    { 0.50798, 0.50862, 0.50517, 0.49325, 0.45741, 0.39430, 0.30345, 0.20492,
   23.13 -        0.12126, 0.06741, 0.03429, 0.01710, 0.00865, 0.00419, 0.00223, 0.00098,
   23.14 -        0.00065, 0.00028, 0.00013, 0.00006, 0.00005, 0.00001, 0.00002, 0.00000,
   23.15 -        0.00000, 0.00000, 0.00000, 0.00000, 0.00000 },
   23.16 -    { 1.00000, 1.00000, 1.00000, 1.00000, 0.99870, 0.98730, 0.93240, 0.81330,
   23.17 -        0.62730, 0.45400, 0.29000, 0.17620, 0.09950, 0.05670, 0.03350, 0.01640,
   23.18 -        0.01120, 0.00520, 0.00320, 0.00160, 0.00110, 0.00060, 0.00040, 0.00010,
   23.19 -        0.00010, 0.00010, 0.00000, 0.00000, 0.00000 },
   23.20 -    { 0.00000, 0.00000, 0.00000, 0.00000, 0.00130, 0.01254, 0.06303, 0.15184,
   23.21 -        0.23380, 0.24788, 0.20590, 0.14515, 0.08960, 0.05348, 0.03238, 0.01613,
   23.22 -        0.01107, 0.00517, 0.00319, 0.00160, 0.00110, 0.00020, 0.00060, 0.00000,
   23.23 -        0.00010, 0.00010, 0.00000, 0.00000, 0.00000 },
   23.24 -    { 1.00000, 1.00000, 1.00000, 1.00000, 0.99799, 0.98511, 0.92748, 0.80566,
   23.25 -        0.61782, 0.44424, 0.28111, 0.16873, 0.09363, 0.05217, 0.02997, 0.01391,
   23.26 -        0.00914, 0.00379, 0.00209, 0.00082, 0.00045, 0.00008, 0.00012, 0.00000,
   23.27 -        0.00010, 0.00010, 0.00000, 0.00000, 0.00000 },
   23.28 -    { 1.00000, 1.00000, 1.00000, 1.00000, 0.99941, 0.98950, 0.93732, 0.82094,
   23.29 -        0.63678, 0.46376, 0.29889, 0.18367, 0.10537, 0.06123, 0.03703, 0.01889,
   23.30 -        0.01326, 0.00661, 0.00431, 0.00238, 0.00175, 0.00048, 0.00108, 0.00000,
   23.31 -        0.00030, 0.00030, 0.00000, 0.00000, 0.00000 } };
   23.32 -double modulation1[6][42] =
   23.33 -  {
   23.34 -    { 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80, 2.90, 3.00, 3.10,
   23.35 -        3.20, 3.30, 3.40, 3.50, 3.60, 3.70, 3.80, 3.90, 4.00, 4.10, 4.20, 4.30,
   23.36 -        4.40, 4.50, 4.60, 4.70, 4.80, 4.90, 5.00, 5.10, 5.20, 5.30, 5.40, 5.50,
   23.37 -        5.60, 5.70, 5.80, 5.90, 6.00, 6.10 },
   23.38 -    { 0.45604, 0.43627, 0.41185, 0.38360, 0.34393, 0.30548, 0.26033, 0.22148,
   23.39 -        0.18646, 0.14898, 0.11921, 0.09493, 0.07055, 0.05625, 0.04178, 0.03245,
   23.40 -        0.02613, 0.01733, 0.01415, 0.01151, 0.00834, 0.00506, 0.00450, 0.00349,
   23.41 -        0.00213, 0.00158, 0.00162, 0.00078, 0.00070, 0.00039, 0.00039, 0.00059,
   23.42 -        0.00049, 0.00005, 0.00015, 0.00010, 0.00000, 0.00029, 0.00005, 0.00000,
   23.43 -        0.00005, 0.00000 },
   23.44 -    { 0.95150, 0.91120, 0.86240, 0.80300, 0.72060, 0.64010, 0.54740, 0.46440,
   23.45 -        0.39190, 0.31310, 0.25110, 0.19930, 0.14830, 0.11820, 0.08800, 0.06890,
   23.46 -        0.05520, 0.03650, 0.02980, 0.02440, 0.01770, 0.01090, 0.00920, 0.00730,
   23.47 -        0.00460, 0.00340, 0.00340, 0.00160, 0.00160, 0.00150, 0.00140, 0.00120,
   23.48 -        0.00100, 0.00090, 0.00060, 0.00040, 0.00020, 0.00010, 0.00005, 0.00004,
   23.49 -        0.00003, 0.00000 },
   23.50 -    { 0.04615, 0.08092, 0.11867, 0.15819, 0.20134, 0.23037, 0.24775, 0.24873,
   23.51 -        0.23831, 0.21507, 0.18805, 0.15958, 0.12631, 0.10423, 0.08026, 0.06415,
   23.52 -        0.05215, 0.03517, 0.02891, 0.02380, 0.01739, 0.01078, 0.00911, 0.00725,
   23.53 -        0.00458, 0.00339, 0.00339, 0.00160, 0.00160, 0.00080, 0.00080, 0.00120,
   23.54 -        0.00100, 0.00010, 0.00030, 0.00020, 0.00000, 0.00060, 0.00010, 0.00000,
   23.55 -        0.00010, 0.00000 },
   23.56 -    { 0.94729, 0.90563, 0.85565, 0.79520, 0.71181, 0.63069, 0.53764, 0.45463,
   23.57 -        0.38233, 0.30401, 0.24260, 0.19147, 0.14133, 0.11187, 0.08245, 0.06394,
   23.58 -        0.05072, 0.03282, 0.02647, 0.02138, 0.01512, 0.00886, 0.00733, 0.00563,
   23.59 -        0.00327, 0.00226, 0.00226, 0.00082, 0.00082, 0.00025, 0.00025, 0.00052,
   23.60 -        0.00038, 0.00010, 0.00004, 0.00008, 0.00000, 0.00012, 0.00010, 0.00000,
   23.61 -        0.00010, 0.00000 },
   23.62 -    { 0.95571, 0.91678, 0.86915, 0.81080, 0.72940, 0.64951, 0.55716, 0.47418,
   23.63 -        0.40147, 0.32219, 0.25960, 0.20713, 0.15527, 0.12453, 0.09355, 0.07386,
   23.64 -        0.05968, 0.04018, 0.03313, 0.02742, 0.02028, 0.01294, 0.01107, 0.00897,
   23.65 -        0.00593, 0.00454, 0.00454, 0.00238, 0.00238, 0.00135, 0.00135, 0.00188,
   23.66 -        0.00162, 0.00030, 0.00064, 0.00048, 0.00000, 0.00108, 0.00030, 0.00000,
   23.67 -        0.00030, 0.00000 } };
   23.68 +double modulation0[6][29] = { { 0.00, 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70,
   23.69 +    0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90,
   23.70 +    2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80 }, { 0.50798, 0.50862,
   23.71 +    0.50517, 0.49325, 0.45741, 0.39430, 0.30345, 0.20492, 0.12126, 0.06741,
   23.72 +    0.03429, 0.01710, 0.00865, 0.00419, 0.00223, 0.00098, 0.00065, 0.00028,
   23.73 +    0.00013, 0.00006, 0.00005, 0.00001, 0.00002, 0.00000, 0.00000, 0.00000,
   23.74 +    0.00000, 0.00000, 0.00000 }, { 1.00000, 1.00000, 1.00000, 1.00000, 0.99870,
   23.75 +    0.98730, 0.93240, 0.81330, 0.62730, 0.45400, 0.29000, 0.17620, 0.09950,
   23.76 +    0.05670, 0.03350, 0.01640, 0.01120, 0.00520, 0.00320, 0.00160, 0.00110,
   23.77 +    0.00060, 0.00040, 0.00010, 0.00010, 0.00010, 0.00000, 0.00000, 0.00000 }, {
   23.78 +    0.00000, 0.00000, 0.00000, 0.00000, 0.00130, 0.01254, 0.06303, 0.15184,
   23.79 +    0.23380, 0.24788, 0.20590, 0.14515, 0.08960, 0.05348, 0.03238, 0.01613,
   23.80 +    0.01107, 0.00517, 0.00319, 0.00160, 0.00110, 0.00020, 0.00060, 0.00000,
   23.81 +    0.00010, 0.00010, 0.00000, 0.00000, 0.00000 }, { 1.00000, 1.00000, 1.00000,
   23.82 +    1.00000, 0.99799, 0.98511, 0.92748, 0.80566, 0.61782, 0.44424, 0.28111,
   23.83 +    0.16873, 0.09363, 0.05217, 0.02997, 0.01391, 0.00914, 0.00379, 0.00209,
   23.84 +    0.00082, 0.00045, 0.00008, 0.00012, 0.00000, 0.00010, 0.00010, 0.00000,
   23.85 +    0.00000, 0.00000 }, { 1.00000, 1.00000, 1.00000, 1.00000, 0.99941, 0.98950,
   23.86 +    0.93732, 0.82094, 0.63678, 0.46376, 0.29889, 0.18367, 0.10537, 0.06123,
   23.87 +    0.03703, 0.01889, 0.01326, 0.00661, 0.00431, 0.00238, 0.00175, 0.00048,
   23.88 +    0.00108, 0.00000, 0.00030, 0.00030, 0.00000, 0.00000, 0.00000 } };
   23.89 +double modulation1[6][42] = { { 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70,
   23.90 +    2.80, 2.90, 3.00, 3.10, 3.20, 3.30, 3.40, 3.50, 3.60, 3.70, 3.80, 3.90,
   23.91 +    4.00, 4.10, 4.20, 4.30, 4.40, 4.50, 4.60, 4.70, 4.80, 4.90, 5.00, 5.10,
   23.92 +    5.20, 5.30, 5.40, 5.50, 5.60, 5.70, 5.80, 5.90, 6.00, 6.10 }, { 0.45604,
   23.93 +    0.43627, 0.41185, 0.38360, 0.34393, 0.30548, 0.26033, 0.22148, 0.18646,
   23.94 +    0.14898, 0.11921, 0.09493, 0.07055, 0.05625, 0.04178, 0.03245, 0.02613,
   23.95 +    0.01733, 0.01415, 0.01151, 0.00834, 0.00506, 0.00450, 0.00349, 0.00213,
   23.96 +    0.00158, 0.00162, 0.00078, 0.00070, 0.00039, 0.00039, 0.00059, 0.00049,
   23.97 +    0.00005, 0.00015, 0.00010, 0.00000, 0.00029, 0.00005, 0.00000, 0.00005,
   23.98 +    0.00000 }, { 0.95150, 0.91120, 0.86240, 0.80300, 0.72060, 0.64010, 0.54740,
   23.99 +    0.46440, 0.39190, 0.31310, 0.25110, 0.19930, 0.14830, 0.11820, 0.08800,
  23.100 +    0.06890, 0.05520, 0.03650, 0.02980, 0.02440, 0.01770, 0.01090, 0.00920,
  23.101 +    0.00730, 0.00460, 0.00340, 0.00340, 0.00160, 0.00160, 0.00150, 0.00140,
  23.102 +    0.00120, 0.00100, 0.00090, 0.00060, 0.00040, 0.00020, 0.00010, 0.00005,
  23.103 +    0.00004, 0.00003, 0.00000 }, { 0.04615, 0.08092, 0.11867, 0.15819, 0.20134,
  23.104 +    0.23037, 0.24775, 0.24873, 0.23831, 0.21507, 0.18805, 0.15958, 0.12631,
  23.105 +    0.10423, 0.08026, 0.06415, 0.05215, 0.03517, 0.02891, 0.02380, 0.01739,
  23.106 +    0.01078, 0.00911, 0.00725, 0.00458, 0.00339, 0.00339, 0.00160, 0.00160,
  23.107 +    0.00080, 0.00080, 0.00120, 0.00100, 0.00010, 0.00030, 0.00020, 0.00000,
  23.108 +    0.00060, 0.00010, 0.00000, 0.00010, 0.00000 }, { 0.94729, 0.90563, 0.85565,
  23.109 +    0.79520, 0.71181, 0.63069, 0.53764, 0.45463, 0.38233, 0.30401, 0.24260,
  23.110 +    0.19147, 0.14133, 0.11187, 0.08245, 0.06394, 0.05072, 0.03282, 0.02647,
  23.111 +    0.02138, 0.01512, 0.00886, 0.00733, 0.00563, 0.00327, 0.00226, 0.00226,
  23.112 +    0.00082, 0.00082, 0.00025, 0.00025, 0.00052, 0.00038, 0.00010, 0.00004,
  23.113 +    0.00008, 0.00000, 0.00012, 0.00010, 0.00000, 0.00010, 0.00000 }, { 0.95571,
  23.114 +    0.91678, 0.86915, 0.81080, 0.72940, 0.64951, 0.55716, 0.47418, 0.40147,
  23.115 +    0.32219, 0.25960, 0.20713, 0.15527, 0.12453, 0.09355, 0.07386, 0.05968,
  23.116 +    0.04018, 0.03313, 0.02742, 0.02028, 0.01294, 0.01107, 0.00897, 0.00593,
  23.117 +    0.00454, 0.00454, 0.00238, 0.00238, 0.00135, 0.00135, 0.00188, 0.00162,
  23.118 +    0.00030, 0.00064, 0.00048, 0.00000, 0.00108, 0.00030, 0.00000, 0.00030,
  23.119 +    0.00000 } };
  23.120  
  23.121 -double modulation2[6][96] =
  23.122 -  {
  23.123 -    { 3.00, 3.10, 3.20, 3.30, 3.40, 3.50, 3.60, 3.70, 3.80, 3.90, 4.00, 4.10,
  23.124 -        4.20, 4.30, 4.40, 4.50, 4.60, 4.70, 4.80, 4.90, 5.00, 5.10, 5.20, 5.30,
  23.125 -        5.40, 5.50, 5.60, 5.70, 5.80, 5.90, 6.00, 6.10, 6.20, 6.30, 6.40, 6.50,
  23.126 -        6.60, 6.70, 6.80, 6.90, 7.00, 7.10, 7.20, 7.30, 7.40, 7.50, 7.60, 7.70,
  23.127 -        7.80, 7.90, 8.00, 8.10, 8.20, 8.30, 8.40, 8.50, 8.60, 8.70, 8.80, 8.90,
  23.128 -        9.00, 9.10, 9.20, 9.30, 9.40, 9.50, 9.60, 9.70, 9.80, 9.90, 10.00,
  23.129 -        10.10, 10.20, 10.30, 10.40, 10.50, 10.60, 10.70, 10.80, 10.90, 11.00,
  23.130 -        11.10, 11.20, 11.30, 11.40, 11.50, 11.60, 11.70, 11.80, 11.90, 12.00,
  23.131 -        12.10, 12.20, 12.30, 12.40, 12.50 },
  23.132 -        { 0.36630, 0.35317, 0.34175, 0.33351, 0.31776, 0.30292, 0.28624,
  23.133 -            0.27526, 0.26174, 0.24856, 0.23007, 0.21865, 0.19945, 0.18414,
  23.134 -            0.16967, 0.15747, 0.14530, 0.13298, 0.11771, 0.11115, 0.09713,
  23.135 -            0.09123, 0.08231, 0.07267, 0.06616, 0.05673, 0.05156, 0.04577,
  23.136 -            0.04282, 0.03866, 0.03513, 0.02856, 0.02680, 0.02406, 0.01948,
  23.137 -            0.01927, 0.01580, 0.01473, 0.01292, 0.01266, 0.01108, 0.00937,
  23.138 -            0.00735, 0.00675, 0.00582, 0.00612, 0.00496, 0.00471, 0.00386,
  23.139 -            0.00412, 0.00333, 0.00387, 0.00234, 0.00257, 0.00204, 0.00161,
  23.140 -            0.00179, 0.00128, 0.00114, 0.00136, 0.00102, 0.00133, 0.00087,
  23.141 -            0.00066, 0.00075, 0.00066, 0.00069, 0.00041, 0.00051, 0.00035,
  23.142 -            0.00033, 0.00034, 0.00025, 0.00033, 0.00038, 0.00036, 0.00012,
  23.143 -            0.00005, 0.00024, 0.00015, 0.00010, 0.00000, 0.00011, 0.00001,
  23.144 -            0.00024, 0.00001, 0.00001, 0.00005, 0.00001, 0.00005, 0.00010,
  23.145 -            0.00005, 0.00009, 0.00000, 0.00000, 0.00000 },
  23.146 -        { 0.99130, 0.98790, 0.97490, 0.96360, 0.94840, 0.92520, 0.89860,
  23.147 -            0.87960, 0.84970, 0.81960, 0.76860, 0.72540, 0.69130, 0.63620,
  23.148 -            0.58540, 0.54710, 0.51010, 0.47450, 0.42570, 0.39700, 0.34730,
  23.149 -            0.32840, 0.29360, 0.25990, 0.23970, 0.20910, 0.18810, 0.16480,
  23.150 -            0.15410, 0.14130, 0.12570, 0.10670, 0.09940, 0.08810, 0.07330,
  23.151 -            0.06930, 0.05720, 0.05530, 0.04630, 0.04460, 0.04070, 0.03310,
  23.152 -            0.02810, 0.02680, 0.02290, 0.02260, 0.01700, 0.01740, 0.01320,
  23.153 -            0.01490, 0.01210, 0.01320, 0.00820, 0.00850, 0.00840, 0.00640,
  23.154 -            0.00590, 0.00480, 0.00450, 0.00490, 0.00410, 0.00420, 0.00340,
  23.155 -            0.00250, 0.00240, 0.00240, 0.00210, 0.00190, 0.00160, 0.00140,
  23.156 -            0.00120, 0.00110, 0.00100, 0.00100, 0.00100, 0.00100, 0.00080,
  23.157 -            0.00070, 0.00050, 0.00050, 0.00040, 0.00040, 0.00030, 0.00030,
  23.158 -            0.00020, 0.00020, 0.00010, 0.00008, 0.00007, 0.00005, 0.00004,
  23.159 -            0.00003, 0.00003, 0.00003, 0.00002, 0.00000 },
  23.160 -        { 0.00862, 0.01195, 0.02447, 0.03508, 0.04894, 0.06921, 0.09112,
  23.161 -            0.10590, 0.12771, 0.14786, 0.17785, 0.19920, 0.21340, 0.23145,
  23.162 -            0.24271, 0.24778, 0.24990, 0.24935, 0.24448, 0.23939, 0.22668,
  23.163 -            0.22055, 0.20740, 0.19235, 0.18224, 0.16538, 0.15272, 0.13764,
  23.164 -            0.13035, 0.12133, 0.10990, 0.09531, 0.08952, 0.08034, 0.06793,
  23.165 -            0.06450, 0.05393, 0.05224, 0.04416, 0.04261, 0.03904, 0.03200,
  23.166 -            0.02731, 0.02608, 0.02238, 0.02209, 0.01671, 0.01710, 0.01303,
  23.167 -            0.01468, 0.01195, 0.01303, 0.00813, 0.00843, 0.00833, 0.00636,
  23.168 -            0.00587, 0.00478, 0.00448, 0.00488, 0.00408, 0.00418, 0.00339,
  23.169 -            0.00230, 0.00239, 0.00239, 0.00210, 0.00110, 0.00190, 0.00120,
  23.170 -            0.00160, 0.00100, 0.00110, 0.00150, 0.00100, 0.00120, 0.00070,
  23.171 -            0.00020, 0.00080, 0.00050, 0.00030, 0.00000, 0.00050, 0.00010,
  23.172 -            0.00050, 0.00010, 0.00010, 0.00010, 0.00020, 0.00020, 0.00030,
  23.173 -            0.00010, 0.00020, 0.00000, 0.00000, 0.00000 },
  23.174 -        { 0.98948, 0.98576, 0.97183, 0.95993, 0.94406, 0.92004, 0.89268,
  23.175 -            0.87322, 0.84270, 0.81206, 0.76033, 0.71665, 0.68225, 0.62677,
  23.176 -            0.57574, 0.53734, 0.50030, 0.46471, 0.41601, 0.38741, 0.33797,
  23.177 -            0.31920, 0.28467, 0.25130, 0.23133, 0.20113, 0.18044, 0.15753,
  23.178 -            0.14702, 0.13447, 0.11920, 0.10065, 0.09354, 0.08254, 0.06819,
  23.179 -            0.06432, 0.05265, 0.05082, 0.04218, 0.04055, 0.03683, 0.02959,
  23.180 -            0.02486, 0.02363, 0.01997, 0.01969, 0.01447, 0.01484, 0.01096,
  23.181 -            0.01252, 0.00996, 0.01096, 0.00643, 0.00670, 0.00661, 0.00484,
  23.182 -            0.00440, 0.00345, 0.00319, 0.00353, 0.00285, 0.00293, 0.00226,
  23.183 -            0.00136, 0.00144, 0.00144, 0.00120, 0.00045, 0.00105, 0.00052,
  23.184 -            0.00082, 0.00038, 0.00045, 0.00074, 0.00038, 0.00052, 0.00018,
  23.185 -            0.00008, 0.00025, 0.00006, 0.00004, 0.00000, 0.00006, 0.00010,
  23.186 -            0.00006, 0.00010, 0.00010, 0.00010, 0.00008, 0.00008, 0.00004,
  23.187 -            0.00010, 0.00008, 0.00000, 0.00000, 0.00000 },
  23.188 -        { 0.99312, 0.99004, 0.97797, 0.96727, 0.95274, 0.93036, 0.90452,
  23.189 -            0.88598, 0.85670, 0.82714, 0.77687, 0.73415, 0.70035, 0.64563,
  23.190 -            0.59506, 0.55686, 0.51990, 0.48429, 0.43539, 0.40659, 0.35663,
  23.191 -            0.33760, 0.30253, 0.26850, 0.24807, 0.21707, 0.19576, 0.17207,
  23.192 -            0.16118, 0.14813, 0.13220, 0.11275, 0.10526, 0.09366, 0.07841,
  23.193 -            0.07428, 0.06175, 0.05978, 0.05042, 0.04865, 0.04457, 0.03661,
  23.194 -            0.03134, 0.02996, 0.02583, 0.02551, 0.01953, 0.01996, 0.01544,
  23.195 -            0.01727, 0.01424, 0.01544, 0.00997, 0.01030, 0.01019, 0.00796,
  23.196 -            0.00740, 0.00615, 0.00581, 0.00627, 0.00535, 0.00547, 0.00454,
  23.197 -            0.00324, 0.00336, 0.00336, 0.00300, 0.00175, 0.00275, 0.00188,
  23.198 -            0.00238, 0.00162, 0.00175, 0.00226, 0.00162, 0.00188, 0.00122,
  23.199 -            0.00048, 0.00135, 0.00094, 0.00064, 0.00000, 0.00094, 0.00030,
  23.200 -            0.00094, 0.00030, 0.00030, 0.00030, 0.00048, 0.00048, 0.00064,
  23.201 -            0.00030, 0.00048, 0.00000, 0.00000, 0.00000 } };
  23.202 +double modulation2[6][96] = { { 3.00, 3.10, 3.20, 3.30, 3.40, 3.50, 3.60, 3.70,
  23.203 +    3.80, 3.90, 4.00, 4.10, 4.20, 4.30, 4.40, 4.50, 4.60, 4.70, 4.80, 4.90,
  23.204 +    5.00, 5.10, 5.20, 5.30, 5.40, 5.50, 5.60, 5.70, 5.80, 5.90, 6.00, 6.10,
  23.205 +    6.20, 6.30, 6.40, 6.50, 6.60, 6.70, 6.80, 6.90, 7.00, 7.10, 7.20, 7.30,
  23.206 +    7.40, 7.50, 7.60, 7.70, 7.80, 7.90, 8.00, 8.10, 8.20, 8.30, 8.40, 8.50,
  23.207 +    8.60, 8.70, 8.80, 8.90, 9.00, 9.10, 9.20, 9.30, 9.40, 9.50, 9.60, 9.70,
  23.208 +    9.80, 9.90, 10.00, 10.10, 10.20, 10.30, 10.40, 10.50, 10.60, 10.70, 10.80,
  23.209 +    10.90, 11.00, 11.10, 11.20, 11.30, 11.40, 11.50, 11.60, 11.70, 11.80,
  23.210 +    11.90, 12.00, 12.10, 12.20, 12.30, 12.40, 12.50 }, { 0.36630, 0.35317,
  23.211 +    0.34175, 0.33351, 0.31776, 0.30292, 0.28624, 0.27526, 0.26174, 0.24856,
  23.212 +    0.23007, 0.21865, 0.19945, 0.18414, 0.16967, 0.15747, 0.14530, 0.13298,
  23.213 +    0.11771, 0.11115, 0.09713, 0.09123, 0.08231, 0.07267, 0.06616, 0.05673,
  23.214 +    0.05156, 0.04577, 0.04282, 0.03866, 0.03513, 0.02856, 0.02680, 0.02406,
  23.215 +    0.01948, 0.01927, 0.01580, 0.01473, 0.01292, 0.01266, 0.01108, 0.00937,
  23.216 +    0.00735, 0.00675, 0.00582, 0.00612, 0.00496, 0.00471, 0.00386, 0.00412,
  23.217 +    0.00333, 0.00387, 0.00234, 0.00257, 0.00204, 0.00161, 0.00179, 0.00128,
  23.218 +    0.00114, 0.00136, 0.00102, 0.00133, 0.00087, 0.00066, 0.00075, 0.00066,
  23.219 +    0.00069, 0.00041, 0.00051, 0.00035, 0.00033, 0.00034, 0.00025, 0.00033,
  23.220 +    0.00038, 0.00036, 0.00012, 0.00005, 0.00024, 0.00015, 0.00010, 0.00000,
  23.221 +    0.00011, 0.00001, 0.00024, 0.00001, 0.00001, 0.00005, 0.00001, 0.00005,
  23.222 +    0.00010, 0.00005, 0.00009, 0.00000, 0.00000, 0.00000 }, { 0.99130, 0.98790,
  23.223 +    0.97490, 0.96360, 0.94840, 0.92520, 0.89860, 0.87960, 0.84970, 0.81960,
  23.224 +    0.76860, 0.72540, 0.69130, 0.63620, 0.58540, 0.54710, 0.51010, 0.47450,
  23.225 +    0.42570, 0.39700, 0.34730, 0.32840, 0.29360, 0.25990, 0.23970, 0.20910,
  23.226 +    0.18810, 0.16480, 0.15410, 0.14130, 0.12570, 0.10670, 0.09940, 0.08810,
  23.227 +    0.07330, 0.06930, 0.05720, 0.05530, 0.04630, 0.04460, 0.04070, 0.03310,
  23.228 +    0.02810, 0.02680, 0.02290, 0.02260, 0.01700, 0.01740, 0.01320, 0.01490,
  23.229 +    0.01210, 0.01320, 0.00820, 0.00850, 0.00840, 0.00640, 0.00590, 0.00480,
  23.230 +    0.00450, 0.00490, 0.00410, 0.00420, 0.00340, 0.00250, 0.00240, 0.00240,
  23.231 +    0.00210, 0.00190, 0.00160, 0.00140, 0.00120, 0.00110, 0.00100, 0.00100,
  23.232 +    0.00100, 0.00100, 0.00080, 0.00070, 0.00050, 0.00050, 0.00040, 0.00040,
  23.233 +    0.00030, 0.00030, 0.00020, 0.00020, 0.00010, 0.00008, 0.00007, 0.00005,
  23.234 +    0.00004, 0.00003, 0.00003, 0.00003, 0.00002, 0.00000 }, { 0.00862, 0.01195,
  23.235 +    0.02447, 0.03508, 0.04894, 0.06921, 0.09112, 0.10590, 0.12771, 0.14786,
  23.236 +    0.17785, 0.19920, 0.21340, 0.23145, 0.24271, 0.24778, 0.24990, 0.24935,
  23.237 +    0.24448, 0.23939, 0.22668, 0.22055, 0.20740, 0.19235, 0.18224, 0.16538,
  23.238 +    0.15272, 0.13764, 0.13035, 0.12133, 0.10990, 0.09531, 0.08952, 0.08034,
  23.239 +    0.06793, 0.06450, 0.05393, 0.05224, 0.04416, 0.04261, 0.03904, 0.03200,
  23.240 +    0.02731, 0.02608, 0.02238, 0.02209, 0.01671, 0.01710, 0.01303, 0.01468,
  23.241 +    0.01195, 0.01303, 0.00813, 0.00843, 0.00833, 0.00636, 0.00587, 0.00478,
  23.242 +    0.00448, 0.00488, 0.00408, 0.00418, 0.00339, 0.00230, 0.00239, 0.00239,
  23.243 +    0.00210, 0.00110, 0.00190, 0.00120, 0.00160, 0.00100, 0.00110, 0.00150,
  23.244 +    0.00100, 0.00120, 0.00070, 0.00020, 0.00080, 0.00050, 0.00030, 0.00000,
  23.245 +    0.00050, 0.00010, 0.00050, 0.00010, 0.00010, 0.00010, 0.00020, 0.00020,
  23.246 +    0.00030, 0.00010, 0.00020, 0.00000, 0.00000, 0.00000 }, { 0.98948, 0.98576,
  23.247 +    0.97183, 0.95993, 0.94406, 0.92004, 0.89268, 0.87322, 0.84270, 0.81206,
  23.248 +    0.76033, 0.71665, 0.68225, 0.62677, 0.57574, 0.53734, 0.50030, 0.46471,
  23.249 +    0.41601, 0.38741, 0.33797, 0.31920, 0.28467, 0.25130, 0.23133, 0.20113,
  23.250 +    0.18044, 0.15753, 0.14702, 0.13447, 0.11920, 0.10065, 0.09354, 0.08254,
  23.251 +    0.06819, 0.06432, 0.05265, 0.05082, 0.04218, 0.04055, 0.03683, 0.02959,
  23.252 +    0.02486, 0.02363, 0.01997, 0.01969, 0.01447, 0.01484, 0.01096, 0.01252,
  23.253 +    0.00996, 0.01096, 0.00643, 0.00670, 0.00661, 0.00484, 0.00440, 0.00345,
  23.254 +    0.00319, 0.00353, 0.00285, 0.00293, 0.00226, 0.00136, 0.00144, 0.00144,
  23.255 +    0.00120, 0.00045, 0.00105, 0.00052, 0.00082, 0.00038, 0.00045, 0.00074,
  23.256 +    0.00038, 0.00052, 0.00018, 0.00008, 0.00025, 0.00006, 0.00004, 0.00000,
  23.257 +    0.00006, 0.00010, 0.00006, 0.00010, 0.00010, 0.00010, 0.00008, 0.00008,
  23.258 +    0.00004, 0.00010, 0.00008, 0.00000, 0.00000, 0.00000 }, { 0.99312, 0.99004,
  23.259 +    0.97797, 0.96727, 0.95274, 0.93036, 0.90452, 0.88598, 0.85670, 0.82714,
  23.260 +    0.77687, 0.73415, 0.70035, 0.64563, 0.59506, 0.55686, 0.51990, 0.48429,
  23.261 +    0.43539, 0.40659, 0.35663, 0.33760, 0.30253, 0.26850, 0.24807, 0.21707,
  23.262 +    0.19576, 0.17207, 0.16118, 0.14813, 0.13220, 0.11275, 0.10526, 0.09366,
  23.263 +    0.07841, 0.07428, 0.06175, 0.05978, 0.05042, 0.04865, 0.04457, 0.03661,
  23.264 +    0.03134, 0.02996, 0.02583, 0.02551, 0.01953, 0.01996, 0.01544, 0.01727,
  23.265 +    0.01424, 0.01544, 0.00997, 0.01030, 0.01019, 0.00796, 0.00740, 0.00615,
  23.266 +    0.00581, 0.00627, 0.00535, 0.00547, 0.00454, 0.00324, 0.00336, 0.00336,
  23.267 +    0.00300, 0.00175, 0.00275, 0.00188, 0.00238, 0.00162, 0.00175, 0.00226,
  23.268 +    0.00162, 0.00188, 0.00122, 0.00048, 0.00135, 0.00094, 0.00064, 0.00000,
  23.269 +    0.00094, 0.00030, 0.00094, 0.00030, 0.00030, 0.00030, 0.00048, 0.00048,
  23.270 +    0.00064, 0.00030, 0.00048, 0.00000, 0.00000, 0.00000 } };
  23.271  
  23.272 -double modulation3[6][117] =
  23.273 -  {
  23.274 +double modulation3[6][117] = {
  23.275      { 10.00, 10.10, 10.20, 10.30, 10.40, 10.50, 10.60, 10.70, 10.80, 10.90,
  23.276          11.00, 11.10, 11.20, 11.30, 11.40, 11.50, 11.60, 11.70, 11.80, 11.90,
  23.277          12.00, 12.10, 12.20, 12.30, 12.40, 12.50, 12.60, 12.70, 12.80, 12.90,
  23.278 @@ -179,53 +157,52 @@
  23.279          18.20, 18.30, 18.40, 18.50, 18.60, 18.70, 18.80, 18.90, 19.00, 19.10,
  23.280          19.20, 19.30, 19.40, 19.50, 19.60, 19.70, 19.80, 19.90, 20.00, 20.10,
  23.281          20.20, 20.30, 20.40, 20.50, 20.60, 20.70, 20.80, 20.90, 21.00, 21.10,
  23.282 -        21.20, 21.30, 21.40, 21.50, 21.60, 21.70, 21.80 },
  23.283 -    { 0.39109, 0.37994, 0.36904, 0.36186, 0.35172, 0.34069, 0.32445, 0.31707,
  23.284 -        0.30757, 0.28951, 0.27937, 0.26696, 0.25737, 0.24826, 0.23413, 0.22045,
  23.285 -        0.21144, 0.20244, 0.19049, 0.17783, 0.16793, 0.15746, 0.14697, 0.13387,
  23.286 -        0.12757, 0.12354, 0.11370, 0.10474, 0.09701, 0.09219, 0.08535, 0.07516,
  23.287 -        0.07240, 0.06492, 0.06394, 0.05577, 0.05399, 0.05040, 0.04632, 0.04287,
  23.288 -        0.03918, 0.03327, 0.03376, 0.02855, 0.02791, 0.02417, 0.02412, 0.02111,
  23.289 -        0.01801, 0.01482, 0.01486, 0.01324, 0.01167, 0.01137, 0.01127, 0.00911,
  23.290 -        0.00930, 0.00650, 0.00748, 0.00615, 0.00610, 0.00487, 0.00492, 0.00364,
  23.291 -        0.00448, 0.00477, 0.00231, 0.00295, 0.00256, 0.00266, 0.00182, 0.00192,
  23.292 -        0.00182, 0.00123, 0.00158, 0.00153, 0.00153, 0.00093, 0.00093, 0.00064,
  23.293 -        0.00064, 0.00059, 0.00069, 0.00034, 0.00034, 0.00054, 0.00039, 0.00010,
  23.294 -        0.00025, 0.00049, 0.00030, 0.00034, 0.00015, 0.00034, 0.00030, 0.00034,
  23.295 -        0.00005, 0.00020, 0.00020, 0.00015, 0.00010, 0.00010, 0.00010, 0.00010,
  23.296 -        0.00010, 0.00020, 0.00000, 0.00005, 0.00000, 0.00005, 0.00010, 0.00020,
  23.297 -        0.00010, 0.00005, 0.00005, 0.00020, 0.00000 },
  23.298 -    { 0.79460, 0.77200, 0.74980, 0.73520, 0.71470, 0.69220, 0.65920, 0.64420,
  23.299 -        0.62490, 0.58830, 0.56760, 0.54240, 0.52290, 0.50440, 0.47570, 0.44790,
  23.300 -        0.42960, 0.41130, 0.38710, 0.36140, 0.34120, 0.32000, 0.29860, 0.27200,
  23.301 -        0.25920, 0.25100, 0.23100, 0.21280, 0.19710, 0.18730, 0.17340, 0.15270,
  23.302 -        0.14710, 0.13190, 0.12990, 0.11330, 0.10970, 0.10240, 0.09410, 0.08710,
  23.303 -        0.07960, 0.06760, 0.06860, 0.05800, 0.05670, 0.04910, 0.04900, 0.04290,
  23.304 -        0.03660, 0.03010, 0.03020, 0.02690, 0.02370, 0.02310, 0.02290, 0.01850,
  23.305 -        0.01890, 0.01520, 0.01320, 0.01250, 0.01240, 0.01000, 0.01000, 0.00940,
  23.306 -        0.00910, 0.00970, 0.00700, 0.00600, 0.00520, 0.00540, 0.00390, 0.00390,
  23.307 -        0.00370, 0.00320, 0.00320, 0.00310, 0.00310, 0.00190, 0.00190, 0.00130,
  23.308 -        0.00130, 0.00120, 0.00140, 0.00090, 0.00080, 0.00070, 0.00070, 0.00070,
  23.309 -        0.00060, 0.00060, 0.00060, 0.00050, 0.00050, 0.00050, 0.00040, 0.00040,
  23.310 -        0.00040, 0.00040, 0.00040, 0.00030, 0.00020, 0.00020, 0.00020, 0.00020,
  23.311 -        0.00020, 0.00015, 0.00014, 0.00013, 0.00012, 0.00011, 0.00010, 0.00009,
  23.312 -        0.00008, 0.00007, 0.00006, 0.00005, 0.00000 },
  23.313 -    { 0.16321, 0.17602, 0.18760, 0.19468, 0.20390, 0.21306, 0.22465, 0.22921,
  23.314 -        0.23440, 0.24220, 0.24543, 0.24820, 0.24948, 0.24998, 0.24941, 0.24729,
  23.315 -        0.24504, 0.24213, 0.23725, 0.23079, 0.22478, 0.21760, 0.20944, 0.19802,
  23.316 -        0.19201, 0.18800, 0.17764, 0.16752, 0.15825, 0.15222, 0.14333, 0.12938,
  23.317 -        0.12546, 0.11450, 0.11303, 0.10046, 0.09767, 0.09191, 0.08525, 0.07951,
  23.318 -        0.07326, 0.06303, 0.06389, 0.05464, 0.05348, 0.04669, 0.04660, 0.04106,
  23.319 -        0.03526, 0.02919, 0.02929, 0.02618, 0.02314, 0.02257, 0.02238, 0.01816,
  23.320 -        0.01854, 0.01303, 0.01497, 0.01234, 0.01225, 0.00980, 0.00990, 0.00734,
  23.321 -        0.00902, 0.00961, 0.00468, 0.00596, 0.00517, 0.00537, 0.00369, 0.00388,
  23.322 -        0.00369, 0.00249, 0.00319, 0.00309, 0.00309, 0.00190, 0.00190, 0.00130,
  23.323 -        0.00130, 0.00120, 0.00140, 0.00070, 0.00070, 0.00110, 0.00080, 0.00020,
  23.324 -        0.00050, 0.00100, 0.00060, 0.00070, 0.00030, 0.00070, 0.00060, 0.00070,
  23.325 -        0.00010, 0.00040, 0.00040, 0.00030, 0.00020, 0.00020, 0.00020, 0.00020,
  23.326 -        0.00020, 0.00040, 0.00000, 0.00010, 0.00000, 0.00010, 0.00020, 0.00040,
  23.327 -        0.00020, 0.00010, 0.00010, 0.00040, 0.00000 },
  23.328 -    { 0.78668, 0.76378, 0.74131, 0.72655, 0.70585, 0.68315, 0.64991, 0.63482,
  23.329 +        21.20, 21.30, 21.40, 21.50, 21.60, 21.70, 21.80 }, { 0.39109, 0.37994,
  23.330 +        0.36904, 0.36186, 0.35172, 0.34069, 0.32445, 0.31707, 0.30757, 0.28951,
  23.331 +        0.27937, 0.26696, 0.25737, 0.24826, 0.23413, 0.22045, 0.21144, 0.20244,
  23.332 +        0.19049, 0.17783, 0.16793, 0.15746, 0.14697, 0.13387, 0.12757, 0.12354,
  23.333 +        0.11370, 0.10474, 0.09701, 0.09219, 0.08535, 0.07516, 0.07240, 0.06492,
  23.334 +        0.06394, 0.05577, 0.05399, 0.05040, 0.04632, 0.04287, 0.03918, 0.03327,
  23.335 +        0.03376, 0.02855, 0.02791, 0.02417, 0.02412, 0.02111, 0.01801, 0.01482,
  23.336 +        0.01486, 0.01324, 0.01167, 0.01137, 0.01127, 0.00911, 0.00930, 0.00650,
  23.337 +        0.00748, 0.00615, 0.00610, 0.00487, 0.00492, 0.00364, 0.00448, 0.00477,
  23.338 +        0.00231, 0.00295, 0.00256, 0.00266, 0.00182, 0.00192, 0.00182, 0.00123,
  23.339 +        0.00158, 0.00153, 0.00153, 0.00093, 0.00093, 0.00064, 0.00064, 0.00059,
  23.340 +        0.00069, 0.00034, 0.00034, 0.00054, 0.00039, 0.00010, 0.00025, 0.00049,
  23.341 +        0.00030, 0.00034, 0.00015, 0.00034, 0.00030, 0.00034, 0.00005, 0.00020,
  23.342 +        0.00020, 0.00015, 0.00010, 0.00010, 0.00010, 0.00010, 0.00010, 0.00020,
  23.343 +        0.00000, 0.00005, 0.00000, 0.00005, 0.00010, 0.00020, 0.00010, 0.00005,
  23.344 +        0.00005, 0.00020, 0.00000 }, { 0.79460, 0.77200, 0.74980, 0.73520,
  23.345 +        0.71470, 0.69220, 0.65920, 0.64420, 0.62490, 0.58830, 0.56760, 0.54240,
  23.346 +        0.52290, 0.50440, 0.47570, 0.44790, 0.42960, 0.41130, 0.38710, 0.36140,
  23.347 +        0.34120, 0.32000, 0.29860, 0.27200, 0.25920, 0.25100, 0.23100, 0.21280,
  23.348 +        0.19710, 0.18730, 0.17340, 0.15270, 0.14710, 0.13190, 0.12990, 0.11330,
  23.349 +        0.10970, 0.10240, 0.09410, 0.08710, 0.07960, 0.06760, 0.06860, 0.05800,
  23.350 +        0.05670, 0.04910, 0.04900, 0.04290, 0.03660, 0.03010, 0.03020, 0.02690,
  23.351 +        0.02370, 0.02310, 0.02290, 0.01850, 0.01890, 0.01520, 0.01320, 0.01250,
  23.352 +        0.01240, 0.01000, 0.01000, 0.00940, 0.00910, 0.00970, 0.00700, 0.00600,
  23.353 +        0.00520, 0.00540, 0.00390, 0.00390, 0.00370, 0.00320, 0.00320, 0.00310,
  23.354 +        0.00310, 0.00190, 0.00190, 0.00130, 0.00130, 0.00120, 0.00140, 0.00090,
  23.355 +        0.00080, 0.00070, 0.00070, 0.00070, 0.00060, 0.00060, 0.00060, 0.00050,
  23.356 +        0.00050, 0.00050, 0.00040, 0.00040, 0.00040, 0.00040, 0.00040, 0.00030,
  23.357 +        0.00020, 0.00020, 0.00020, 0.00020, 0.00020, 0.00015, 0.00014, 0.00013,
  23.358 +        0.00012, 0.00011, 0.00010, 0.00009, 0.00008, 0.00007, 0.00006, 0.00005,
  23.359 +        0.00000 }, { 0.16321, 0.17602, 0.18760, 0.19468, 0.20390, 0.21306,
  23.360 +        0.22465, 0.22921, 0.23440, 0.24220, 0.24543, 0.24820, 0.24948, 0.24998,
  23.361 +        0.24941, 0.24729, 0.24504, 0.24213, 0.23725, 0.23079, 0.22478, 0.21760,
  23.362 +        0.20944, 0.19802, 0.19201, 0.18800, 0.17764, 0.16752, 0.15825, 0.15222,
  23.363 +        0.14333, 0.12938, 0.12546, 0.11450, 0.11303, 0.10046, 0.09767, 0.09191,
  23.364 +        0.08525, 0.07951, 0.07326, 0.06303, 0.06389, 0.05464, 0.05348, 0.04669,
  23.365 +        0.04660, 0.04106, 0.03526, 0.02919, 0.02929, 0.02618, 0.02314, 0.02257,
  23.366 +        0.02238, 0.01816, 0.01854, 0.01303, 0.01497, 0.01234, 0.01225, 0.00980,
  23.367 +        0.00990, 0.00734, 0.00902, 0.00961, 0.00468, 0.00596, 0.00517, 0.00537,
  23.368 +        0.00369, 0.00388, 0.00369, 0.00249, 0.00319, 0.00309, 0.00309, 0.00190,
  23.369 +        0.00190, 0.00130, 0.00130, 0.00120, 0.00140, 0.00070, 0.00070, 0.00110,
  23.370 +        0.00080, 0.00020, 0.00050, 0.00100, 0.00060, 0.00070, 0.00030, 0.00070,
  23.371 +        0.00060, 0.00070, 0.00010, 0.00040, 0.00040, 0.00030, 0.00020, 0.00020,
  23.372 +        0.00020, 0.00020, 0.00020, 0.00040, 0.00000, 0.00010, 0.00000, 0.00010,
  23.373 +        0.00020, 0.00040, 0.00020, 0.00010, 0.00010, 0.00040, 0.00000 }, {
  23.374 +        0.78668, 0.76378, 0.74131, 0.72655, 0.70585, 0.68315, 0.64991, 0.63482,
  23.375          0.61541, 0.57865, 0.55789, 0.53263, 0.51311, 0.49460, 0.46591, 0.43815,
  23.376          0.41990, 0.40165, 0.37755, 0.35198, 0.33191, 0.31086, 0.28963, 0.26328,
  23.377          0.25061, 0.24250, 0.22274, 0.20478, 0.18930, 0.17965, 0.16598, 0.14565,
  23.378 @@ -239,959 +216,951 @@
  23.379          0.00006, 0.00038, 0.00012, 0.00018, 0.00004, 0.00018, 0.00012, 0.00018,
  23.380          0.00010, 0.00001, 0.00001, 0.00004, 0.00008, 0.00008, 0.00008, 0.00008,
  23.381          0.00008, 0.00001, 0.00000, 0.00010, 0.00000, 0.00010, 0.00008, 0.00001,
  23.382 -        0.00008, 0.00010, 0.00010, 0.00001, 0.00000 },
  23.383 -    { 0.80252, 0.78022, 0.75829, 0.74385, 0.72355, 0.70125, 0.66849, 0.65358,
  23.384 -        0.63439, 0.59795, 0.57731, 0.55217, 0.53269, 0.51420, 0.48549, 0.45765,
  23.385 -        0.43930, 0.42095, 0.39665, 0.37082, 0.35049, 0.32914, 0.30757, 0.28072,
  23.386 -        0.26779, 0.25950, 0.23926, 0.22082, 0.20490, 0.19495, 0.18082, 0.15975,
  23.387 -        0.15404, 0.13853, 0.13649, 0.11951, 0.11582, 0.10834, 0.09982, 0.09263,
  23.388 -        0.08490, 0.07252, 0.07355, 0.06258, 0.06123, 0.05334, 0.05323, 0.04687,
  23.389 -        0.04028, 0.03345, 0.03355, 0.03007, 0.02668, 0.02604, 0.02583, 0.02114,
  23.390 -        0.02157, 0.01544, 0.01760, 0.01468, 0.01457, 0.01184, 0.01195, 0.00908,
  23.391 -        0.01096, 0.01162, 0.00604, 0.00751, 0.00661, 0.00684, 0.00489, 0.00512,
  23.392 -        0.00489, 0.00348, 0.00431, 0.00419, 0.00419, 0.00275, 0.00275, 0.00201,
  23.393 -        0.00201, 0.00188, 0.00213, 0.00122, 0.00122, 0.00175, 0.00135, 0.00048,
  23.394 -        0.00094, 0.00162, 0.00108, 0.00122, 0.00064, 0.00122, 0.00108, 0.00122,
  23.395 -        0.00030, 0.00079, 0.00079, 0.00064, 0.00048, 0.00048, 0.00048, 0.00048,
  23.396 -        0.00048, 0.00079, 0.00000, 0.00030, 0.00000, 0.00030, 0.00048, 0.00079,
  23.397 -        0.00048, 0.00030, 0.00030, 0.00079, 0.00000 }
  23.398 +        0.00008, 0.00010, 0.00010, 0.00001, 0.00000 }, { 0.80252, 0.78022,
  23.399 +        0.75829, 0.74385, 0.72355, 0.70125, 0.66849, 0.65358, 0.63439, 0.59795,
  23.400 +        0.57731, 0.55217, 0.53269, 0.51420, 0.48549, 0.45765, 0.43930, 0.42095,
  23.401 +        0.39665, 0.37082, 0.35049, 0.32914, 0.30757, 0.28072, 0.26779, 0.25950,
  23.402 +        0.23926, 0.22082, 0.20490, 0.19495, 0.18082, 0.15975, 0.15404, 0.13853,
  23.403 +        0.13649, 0.11951, 0.11582, 0.10834, 0.09982, 0.09263, 0.08490, 0.07252,
  23.404 +        0.07355, 0.06258, 0.06123, 0.05334, 0.05323, 0.04687, 0.04028, 0.03345,
  23.405 +        0.03355, 0.03007, 0.02668, 0.02604, 0.02583, 0.02114, 0.02157, 0.01544,
  23.406 +        0.01760, 0.01468, 0.01457, 0.01184, 0.01195, 0.00908, 0.01096, 0.01162,
  23.407 +        0.00604, 0.00751, 0.00661, 0.00684, 0.00489, 0.00512, 0.00489, 0.00348,
  23.408 +        0.00431, 0.00419, 0.00419, 0.00275, 0.00275, 0.00201, 0.00201, 0.00188,
  23.409 +        0.00213, 0.00122, 0.00122, 0.00175, 0.00135, 0.00048, 0.00094, 0.00162,
  23.410 +        0.00108, 0.00122, 0.00064, 0.00122, 0.00108, 0.00122, 0.00030, 0.00079,
  23.411 +        0.00079, 0.00064, 0.00048, 0.00048, 0.00048, 0.00048, 0.00048, 0.00079,
  23.412 +        0.00000, 0.00030, 0.00000, 0.00030, 0.00048, 0.00079, 0.00048, 0.00030,
  23.413 +        0.00030, 0.00079, 0.00000 }
  23.414  
  23.415 -  };
  23.416 +};
  23.417  
  23.418 -double modulation4[6][115] =
  23.419 -  {
  23.420 -    { 20.00, 20.10, 20.20, 20.30, 20.40, 20.50, 20.60, 20.70, 20.80, 20.90,
  23.421 -        21.00, 21.10, 21.20, 21.30, 21.40, 21.50, 21.60, 21.70, 21.80, 21.90,
  23.422 -        22.00, 22.10, 22.20, 22.30, 22.40, 22.50, 22.60, 22.70, 22.80, 22.90,
  23.423 -        23.00, 23.10, 23.20, 23.30, 23.40, 23.50, 23.60, 23.70, 23.80, 23.90,
  23.424 -        24.00, 24.10, 24.20, 24.30, 24.40, 24.50, 24.60, 24.70, 24.80, 24.90,
  23.425 -        25.00, 25.10, 25.20, 25.30, 25.40, 25.50, 25.60, 25.70, 25.80, 25.90,
  23.426 -        26.00, 26.10, 26.20, 26.30, 26.40, 26.50, 26.60, 26.70, 26.80, 26.90,
  23.427 -        27.10, 27.20, 27.30, 27.40, 27.50, 27.60, 27.70, 27.80, 27.90, 28.00,
  23.428 -        28.10, 28.20, 28.30, 28.40, 28.50, 28.60, 28.70, 28.80, 28.90, 29.00,
  23.429 -        29.10, 29.20, 29.30, 29.40, 29.50, 29.60, 29.70, 29.80, 29.90, 30.00,
  23.430 -        30.10, 30.20, 30.30, 30.40, 30.50, 30.60, 30.70, 30.80, 30.90, 31.00,
  23.431 -        31.10, 31.20, 31.30, 31.40, 31.50 },
  23.432 -    { 0.33107, 0.32310, 0.31789, 0.31805, 0.31352, 0.30854, 0.30697, 0.29615,
  23.433 -        0.29218, 0.28319, 0.27982, 0.27112, 0.27369, 0.26701, 0.26180, 0.25450,
  23.434 -        0.25144, 0.24541, 0.23739, 0.23148, 0.23259, 0.23020, 0.22530, 0.21333,
  23.435 -        0.20806, 0.20799, 0.19834, 0.19916, 0.19431, 0.18956, 0.18273, 0.18543,
  23.436 -        0.17783, 0.17627, 0.17182, 0.16563, 0.15979, 0.15714, 0.15541, 0.15025,
  23.437 -        0.14868, 0.14430, 0.13602, 0.13636, 0.13467, 0.12758, 0.12542, 0.12828,
  23.438 -        0.12015, 0.11889, 0.11511, 0.10993, 0.10791, 0.10339, 0.10542, 0.10187,
  23.439 -        0.09945, 0.09516, 0.08852, 0.09033, 0.09222, 0.08730, 0.08405, 0.08084,
  23.440 -        0.08054, 0.07719, 0.07267, 0.06947, 0.07170, 0.06786, 0.06610, 0.06346,
  23.441 -        0.05817, 0.06174, 0.06139, 0.05859, 0.05682, 0.05319, 0.05322, 0.05096,
  23.442 -        0.05004, 0.04921, 0.04771, 0.04506, 0.04220, 0.04323, 0.04337, 0.04082,
  23.443 -        0.04035, 0.03932, 0.03570, 0.03526, 0.03798, 0.03680, 0.03391, 0.03413,
  23.444 -        0.03184, 0.02968, 0.02886, 0.02931, 0.02955, 0.02795, 0.02603, 0.02478,
  23.445 -        0.02541, 0.02669, 0.02407, 0.02403, 0.02353, 0.02260, 0.02004, 0.02105,
  23.446 -        0.02135, 0.01855, 0.02085 },
  23.447 -    { 0.68910, 0.67470, 0.66370, 0.66340, 0.65400, 0.64460, 0.64120, 0.61740,
  23.448 -        0.61020, 0.59290, 0.58240, 0.56690, 0.57110, 0.55810, 0.54650, 0.53130,
  23.449 -        0.52610, 0.51200, 0.49810, 0.48530, 0.48690, 0.48150, 0.47100, 0.44610,
  23.450 -        0.43360, 0.43630, 0.41640, 0.41670, 0.40760, 0.39680, 0.38090, 0.38680,
  23.451 -        0.37150, 0.36880, 0.36050, 0.34570, 0.33380, 0.32750, 0.32550, 0.31570,
  23.452 -        0.31170, 0.30200, 0.28510, 0.28540, 0.28240, 0.26730, 0.26210, 0.26730,
  23.453 -        0.25150, 0.24950, 0.24100, 0.23150, 0.22630, 0.21650, 0.22150, 0.21430,
  23.454 -        0.20760, 0.19990, 0.18610, 0.18940, 0.19290, 0.18350, 0.17690, 0.16830,
  23.455 -        0.17030, 0.16210, 0.15310, 0.14570, 0.14960, 0.14150, 0.13860, 0.13350,
  23.456 -        0.12300, 0.12880, 0.12900, 0.12350, 0.11900, 0.11280, 0.11120, 0.10710,
  23.457 -        0.10500, 0.10350, 0.10030, 0.09460, 0.08850, 0.09070, 0.09010, 0.08600,
  23.458 -        0.08490, 0.08210, 0.07550, 0.07440, 0.07960, 0.07740, 0.07190, 0.07100,
  23.459 -        0.06770, 0.06190, 0.06050, 0.06170, 0.06200, 0.05870, 0.05490, 0.05240,
  23.460 -        0.05300, 0.05540, 0.05070, 0.05070, 0.04940, 0.04670, 0.04440, 0.04240,
  23.461 -        0.04300, 0.04100, 0.04200 },
  23.462 +double modulation4[6][115] = { { 20.00, 20.10, 20.20, 20.30, 20.40, 20.50,
  23.463 +    20.60, 20.70, 20.80, 20.90, 21.00, 21.10, 21.20, 21.30, 21.40, 21.50,
  23.464 +    21.60, 21.70, 21.80, 21.90, 22.00, 22.10, 22.20, 22.30, 22.40, 22.50,
  23.465 +    22.60, 22.70, 22.80, 22.90, 23.00, 23.10, 23.20, 23.30, 23.40, 23.50,
  23.466 +    23.60, 23.70, 23.80, 23.90, 24.00, 24.10, 24.20, 24.30, 24.40, 24.50,
  23.467 +    24.60, 24.70, 24.80, 24.90, 25.00, 25.10, 25.20, 25.30, 25.40, 25.50,
  23.468 +    25.60, 25.70, 25.80, 25.90, 26.00, 26.10, 26.20, 26.30, 26.40, 26.50,
  23.469 +    26.60, 26.70, 26.80, 26.90, 27.10, 27.20, 27.30, 27.40, 27.50, 27.60,
  23.470 +    27.70, 27.80, 27.90, 28.00, 28.10, 28.20, 28.30, 28.40, 28.50, 28.60,
  23.471 +    28.70, 28.80, 28.90, 29.00, 29.10, 29.20, 29.30, 29.40, 29.50, 29.60,
  23.472 +    29.70, 29.80, 29.90, 30.00, 30.10, 30.20, 30.30, 30.40, 30.50, 30.60,
  23.473 +    30.70, 30.80, 30.90, 31.00, 31.10, 31.20, 31.30, 31.40, 31.50 }, { 0.33107,
  23.474 +    0.32310, 0.31789, 0.31805, 0.31352, 0.30854, 0.30697, 0.29615, 0.29218,
  23.475 +    0.28319, 0.27982, 0.27112, 0.27369, 0.26701, 0.26180, 0.25450, 0.25144,
  23.476 +    0.24541, 0.23739, 0.23148, 0.23259, 0.23020, 0.22530, 0.21333, 0.20806,
  23.477 +    0.20799, 0.19834, 0.19916, 0.19431, 0.18956, 0.18273, 0.18543, 0.17783,
  23.478 +    0.17627, 0.17182, 0.16563, 0.15979, 0.15714, 0.15541, 0.15025, 0.14868,
  23.479 +    0.14430, 0.13602, 0.13636, 0.13467, 0.12758, 0.12542, 0.12828, 0.12015,
  23.480 +    0.11889, 0.11511, 0.10993, 0.10791, 0.10339, 0.10542, 0.10187, 0.09945,
  23.481 +    0.09516, 0.08852, 0.09033, 0.09222, 0.08730, 0.08405, 0.08084, 0.08054,
  23.482 +    0.07719, 0.07267, 0.06947, 0.07170, 0.06786, 0.06610, 0.06346, 0.05817,
  23.483 +    0.06174, 0.06139, 0.05859, 0.05682, 0.05319, 0.05322, 0.05096, 0.05004,
  23.484 +    0.04921, 0.04771, 0.04506, 0.04220, 0.04323, 0.04337, 0.04082, 0.04035,
  23.485 +    0.03932, 0.03570, 0.03526, 0.03798, 0.03680, 0.03391, 0.03413, 0.03184,
  23.486 +    0.02968, 0.02886, 0.02931, 0.02955, 0.02795, 0.02603, 0.02478, 0.02541,
  23.487 +    0.02669, 0.02407, 0.02403, 0.02353, 0.02260, 0.02004, 0.02105, 0.02135,
  23.488 +    0.01855, 0.02085 }, { 0.68910, 0.67470, 0.66370, 0.66340, 0.65400, 0.64460,
  23.489 +    0.64120, 0.61740, 0.61020, 0.59290, 0.58240, 0.56690, 0.57110, 0.55810,
  23.490 +    0.54650, 0.53130, 0.52610, 0.51200, 0.49810, 0.48530, 0.48690, 0.48150,
  23.491 +    0.47100, 0.44610, 0.43360, 0.43630, 0.41640, 0.41670, 0.40760, 0.39680,
  23.492 +    0.38090, 0.38680, 0.37150, 0.36880, 0.36050, 0.34570, 0.33380, 0.32750,
  23.493 +    0.32550, 0.31570, 0.31170, 0.30200, 0.28510, 0.28540, 0.28240, 0.26730,
  23.494 +    0.26210, 0.26730, 0.25150, 0.24950, 0.24100, 0.23150, 0.22630, 0.21650,
  23.495 +    0.22150, 0.21430, 0.20760, 0.19990, 0.18610, 0.18940, 0.19290, 0.18350,
  23.496 +    0.17690, 0.16830, 0.17030, 0.16210, 0.15310, 0.14570, 0.14960, 0.14150,
  23.497 +    0.13860, 0.13350, 0.12300, 0.12880, 0.12900, 0.12350, 0.11900, 0.11280,
  23.498 +    0.11120, 0.10710, 0.10500, 0.10350, 0.10030, 0.09460, 0.08850, 0.09070,
  23.499 +    0.09010, 0.08600, 0.08490, 0.08210, 0.07550, 0.07440, 0.07960, 0.07740,
  23.500 +    0.07190, 0.07100, 0.06770, 0.06190, 0.06050, 0.06170, 0.06200, 0.05870,
  23.501 +    0.05490, 0.05240, 0.05300, 0.05540, 0.05070, 0.05070, 0.04940, 0.04670,
  23.502 +    0.04440, 0.04240, 0.04300, 0.04100, 0.04200 },
  23.503  
  23.504 -    { 0.21424, 0.21948, 0.22320, 0.22330, 0.22628, 0.22909, 0.23006, 0.23622,
  23.505 -        0.23786, 0.24137, 0.24321, 0.24552, 0.24494, 0.24662, 0.24784, 0.24902,
  23.506 -        0.24932, 0.24986, 0.25000, 0.24978, 0.24983, 0.24966, 0.24916, 0.24710,
  23.507 -        0.24559, 0.24594, 0.24301, 0.24306, 0.24146, 0.23935, 0.23581, 0.23719,
  23.508 -        0.23349, 0.23279, 0.23054, 0.22619, 0.22238, 0.22024, 0.21955, 0.21603,
  23.509 -        0.21454, 0.21080, 0.20382, 0.20395, 0.20265, 0.19585, 0.19340, 0.19585,
  23.510 -        0.18825, 0.18725, 0.18292, 0.17791, 0.17509, 0.16963, 0.17244, 0.16838,
  23.511 -        0.16450, 0.15994, 0.15147, 0.15353, 0.15569, 0.14983, 0.14561, 0.13997,
  23.512 -        0.14130, 0.13582, 0.12966, 0.12447, 0.12722, 0.12148, 0.11939, 0.11568,
  23.513 -        0.10787, 0.11221, 0.11236, 0.10825, 0.10484, 0.10008, 0.09884, 0.09563,
  23.514 -        0.09398, 0.09279, 0.09024, 0.08565, 0.08067, 0.08247, 0.08198, 0.07860,
  23.515 -        0.07769, 0.07536, 0.06980, 0.06886, 0.07326, 0.07141, 0.06673, 0.06596,
  23.516 -        0.06312, 0.05807, 0.05684, 0.05789, 0.05816, 0.05525, 0.05189, 0.04965,
  23.517 -        0.05019, 0.05233, 0.04813, 0.04813, 0.04696, 0.04452, 0.04060, 0.04243,
  23.518 -        0.04115, 0.03932, 0.04024 },
  23.519 -    { 0.68003, 0.66552, 0.65444, 0.65414, 0.64468, 0.63522, 0.63180, 0.60787,
  23.520 -        0.60064, 0.58327, 0.57273, 0.55719, 0.56140, 0.54837, 0.53674, 0.52152,
  23.521 -        0.51631, 0.50220, 0.48830, 0.47550, 0.47710, 0.47171, 0.46122, 0.43636,
  23.522 -        0.42389, 0.42658, 0.40674, 0.40704, 0.39797, 0.38721, 0.37138, 0.37725,
  23.523 -        0.36203, 0.35934, 0.35109, 0.33638, 0.32456, 0.31830, 0.31632, 0.30659,
  23.524 -        0.30262, 0.29300, 0.27625, 0.27655, 0.27358, 0.25863, 0.25348, 0.25863,
  23.525 -        0.24300, 0.24102, 0.23262, 0.22323, 0.21810, 0.20843, 0.21336, 0.20626,
  23.526 -        0.19965, 0.19206, 0.17847, 0.18172, 0.18517, 0.17591, 0.16942, 0.16097,
  23.527 -        0.16293, 0.15488, 0.14604, 0.13878, 0.14261, 0.13467, 0.13183, 0.12683,
  23.528 -        0.11656, 0.12223, 0.12243, 0.11705, 0.11265, 0.10660, 0.10504, 0.10104,
  23.529 -        0.09899, 0.09753, 0.09441, 0.08886, 0.08293, 0.08507, 0.08449, 0.08050,
  23.530 -        0.07944, 0.07672, 0.07032, 0.06926, 0.07429, 0.07216, 0.06684, 0.06597,
  23.531 -        0.06278, 0.05718, 0.05583, 0.05698, 0.05727, 0.05409, 0.05044, 0.04803,
  23.532 -        0.04861, 0.05092, 0.04640, 0.04640, 0.04515, 0.04256, 0.03845, 0.04036,
  23.533 -        0.03043, 0.02871, 0.02957 },
  23.534 -    { 0.69817, 0.68388, 0.67296, 0.67266, 0.66332, 0.65398, 0.65060, 0.62693,
  23.535 -        0.61976, 0.60253, 0.59207, 0.57661, 0.58080, 0.56783, 0.55626, 0.54108,
  23.536 -        0.53589, 0.52180, 0.50790, 0.49510, 0.49670, 0.49129, 0.48078, 0.45584,
  23.537 -        0.44331, 0.44602, 0.42606, 0.42636, 0.41723, 0.40639, 0.39042, 0.39635,
  23.538 -        0.38097, 0.37826, 0.36991, 0.35502, 0.34304, 0.33670, 0.33468, 0.32481,
  23.539 -        0.32078, 0.31100, 0.29395, 0.29425, 0.29122, 0.27597, 0.27072, 0.27597,
  23.540 -        0.26000, 0.25798, 0.24938, 0.23977, 0.23450, 0.22457, 0.22964, 0.22234,
  23.541 -        0.21555, 0.20774, 0.19373, 0.19708, 0.20063, 0.19109, 0.18438, 0.17563,
  23.542 -        0.17767, 0.16932, 0.16016, 0.15262, 0.15659, 0.14833, 0.14537, 0.14017,
  23.543 -        0.12944, 0.13537, 0.13557, 0.12995, 0.12535, 0.11900, 0.11736, 0.11316,
  23.544 -        0.11101, 0.10947, 0.10619, 0.10034, 0.09407, 0.09633, 0.09571, 0.09150,
  23.545 -        0.09036, 0.08748, 0.08068, 0.07954, 0.08490, 0.08264, 0.07696, 0.07603,
  23.546 -        0.07262, 0.06662, 0.06517, 0.06642, 0.06673, 0.06331, 0.05937, 0.05677,
  23.547 -        0.05739, 0.05988, 0.05500, 0.05500, 0.05365, 0.05084, 0.04635, 0.04844,
  23.548 -        0.05557, 0.05329, 0.05443 }, };
  23.549 +{ 0.21424, 0.21948, 0.22320, 0.22330, 0.22628, 0.22909, 0.23006, 0.23622,
  23.550 +    0.23786, 0.24137, 0.24321, 0.24552, 0.24494, 0.24662, 0.24784, 0.24902,
  23.551 +    0.24932, 0.24986, 0.25000, 0.24978, 0.24983, 0.24966, 0.24916, 0.24710,
  23.552 +    0.24559, 0.24594, 0.24301, 0.24306, 0.24146, 0.23935, 0.23581, 0.23719,
  23.553 +    0.23349, 0.23279, 0.23054, 0.22619, 0.22238, 0.22024, 0.21955, 0.21603,
  23.554 +    0.21454, 0.21080, 0.20382, 0.20395, 0.20265, 0.19585, 0.19340, 0.19585,
  23.555 +    0.18825, 0.18725, 0.18292, 0.17791, 0.17509, 0.16963, 0.17244, 0.16838,
  23.556 +    0.16450, 0.15994, 0.15147, 0.15353, 0.15569, 0.14983, 0.14561, 0.13997,
  23.557 +    0.14130, 0.13582, 0.12966, 0.12447, 0.12722, 0.12148, 0.11939, 0.11568,
  23.558 +    0.10787, 0.11221, 0.11236, 0.10825, 0.10484, 0.10008, 0.09884, 0.09563,
  23.559 +    0.09398, 0.09279, 0.09024, 0.08565, 0.08067, 0.08247, 0.08198, 0.07860,
  23.560 +    0.07769, 0.07536, 0.06980, 0.06886, 0.07326, 0.07141, 0.06673, 0.06596,
  23.561 +    0.06312, 0.05807, 0.05684, 0.05789, 0.05816, 0.05525, 0.05189, 0.04965,
  23.562 +    0.05019, 0.05233, 0.04813, 0.04813, 0.04696, 0.04452, 0.04060, 0.04243,
  23.563 +    0.04115, 0.03932, 0.04024 }, { 0.68003, 0.66552, 0.65444, 0.65414, 0.64468,
  23.564 +    0.63522, 0.63180, 0.60787, 0.60064, 0.58327, 0.57273, 0.55719, 0.56140,
  23.565 +    0.54837, 0.53674, 0.52152, 0.51631, 0.50220, 0.48830, 0.47550, 0.47710,
  23.566 +    0.47171, 0.46122, 0.43636, 0.42389, 0.42658, 0.40674, 0.40704, 0.39797,
  23.567 +    0.38721, 0.37138, 0.37725, 0.36203, 0.35934, 0.35109, 0.33638, 0.32456,
  23.568 +    0.31830, 0.31632, 0.30659, 0.30262, 0.29300, 0.27625, 0.27655, 0.27358,
  23.569 +    0.25863, 0.25348, 0.25863, 0.24300, 0.24102, 0.23262, 0.22323, 0.21810,
  23.570 +    0.20843, 0.21336, 0.20626, 0.19965, 0.19206, 0.17847, 0.18172, 0.18517,
  23.571 +    0.17591, 0.16942, 0.16097, 0.16293, 0.15488, 0.14604, 0.13878, 0.14261,
  23.572 +    0.13467, 0.13183, 0.12683, 0.11656, 0.12223, 0.12243, 0.11705, 0.11265,
  23.573 +    0.10660, 0.10504, 0.10104, 0.09899, 0.09753, 0.09441, 0.08886, 0.08293,
  23.574 +    0.08507, 0.08449, 0.08050, 0.07944, 0.07672, 0.07032, 0.06926, 0.07429,
  23.575 +    0.07216, 0.06684, 0.06597, 0.06278, 0.05718, 0.05583, 0.05698, 0.05727,
  23.576 +    0.05409, 0.05044, 0.04803, 0.04861, 0.05092, 0.04640, 0.04640, 0.04515,
  23.577 +    0.04256, 0.03845, 0.04036, 0.03043, 0.02871, 0.02957 }, { 0.69817, 0.68388,
  23.578 +    0.67296, 0.67266, 0.66332, 0.65398, 0.65060, 0.62693, 0.61976, 0.60253,
  23.579 +    0.59207, 0.57661, 0.58080, 0.56783, 0.55626, 0.54108, 0.53589, 0.52180,
  23.580 +    0.50790, 0.49510, 0.49670, 0.49129, 0.48078, 0.45584, 0.44331, 0.44602,
  23.581 +    0.42606, 0.42636, 0.41723, 0.40639, 0.39042, 0.39635, 0.38097, 0.37826,
  23.582 +    0.36991, 0.35502, 0.34304, 0.33670, 0.33468, 0.32481, 0.32078, 0.31100,
  23.583 +    0.29395, 0.29425, 0.29122, 0.27597, 0.27072, 0.27597, 0.26000, 0.25798,
  23.584 +    0.24938, 0.23977, 0.23450, 0.22457, 0.22964, 0.22234, 0.21555, 0.20774,
  23.585 +    0.19373, 0.19708, 0.20063, 0.19109, 0.18438, 0.17563, 0.17767, 0.16932,
  23.586 +    0.16016, 0.15262, 0.15659, 0.14833, 0.14537, 0.14017, 0.12944, 0.13537,
  23.587 +    0.13557, 0.12995, 0.12535, 0.11900, 0.11736, 0.11316, 0.11101, 0.10947,
  23.588 +    0.10619, 0.10034, 0.09407, 0.09633, 0.09571, 0.09150, 0.09036, 0.08748,
  23.589 +    0.08068, 0.07954, 0.08490, 0.08264, 0.07696, 0.07603, 0.07262, 0.06662,
  23.590 +    0.06517, 0.06642, 0.06673, 0.06331, 0.05937, 0.05677, 0.05739, 0.05988,
  23.591 +    0.05500, 0.05500, 0.05365, 0.05084, 0.04635, 0.04844, 0.05557, 0.05329,
  23.592 +    0.05443 }, };
  23.593  
  23.594 -double modulation5[6][547] =
  23.595 -  {
  23.596 -    { 50.00, 50.10, 50.20, 50.30, 50.40, 50.50, 50.60, 50.70, 50.80, 50.90,
  23.597 -        51.00, 51.10, 51.20, 51.30, 51.40, 51.50, 51.60, 51.70, 51.80, 51.90,
  23.598 -        52.00, 52.10, 52.20, 52.30, 52.40, 52.50, 52.60, 52.70, 52.80, 52.90,
  23.599 -        53.00, 53.10, 53.20, 53.30, 53.40, 53.50, 53.60, 53.70, 53.80, 53.90,
  23.600 -        54.00, 54.10, 54.20, 54.30, 54.40, 54.50, 54.60, 54.70, 54.80, 54.90,
  23.601 -        55.00, 55.10, 55.20, 55.30, 55.40, 55.50, 55.60, 55.70, 55.80, 55.90,
  23.602 -        56.00, 56.10, 56.20, 56.30, 56.40, 56.50, 56.60, 56.70, 56.80, 56.90,
  23.603 -        57.00, 57.10, 57.20, 57.30, 57.40, 57.50, 57.60, 57.70, 57.80, 57.90,
  23.604 -        58.00, 58.10, 58.20, 58.30, 58.40, 58.50, 58.60, 58.70, 58.80, 58.90,
  23.605 -        59.00, 59.10, 59.20, 59.30, 59.40, 59.50, 59.60, 59.70, 59.80, 59.90,
  23.606 -        60.00, 60.10, 60.20, 60.30, 60.40, 60.50, 60.60, 60.70, 60.80, 60.90,
  23.607 -        61.00, 61.10, 61.20, 61.30, 61.40, 61.50, 61.60, 61.70, 61.80, 61.90,
  23.608 -        62.00, 62.10, 62.20, 62.30, 62.40, 62.50, 62.60, 62.70, 62.80, 62.90,
  23.609 -        63.00, 63.10, 63.20, 63.30, 63.40, 63.50, 63.60, 63.70, 63.80, 63.90,
  23.610 -        64.00, 64.10, 64.20, 64.30, 64.40, 64.50, 64.60, 64.70, 64.80, 64.90,
  23.611 -        65.00, 65.10, 65.20, 65.30, 65.40, 65.50, 65.60, 65.70, 65.80, 65.90,
  23.612 -        66.00, 66.10, 66.20, 66.30, 66.40, 66.50, 66.60, 66.70, 66.80, 66.90,
  23.613 -        67.00, 67.10, 67.20, 67.30, 67.40, 67.50, 67.60, 67.70, 67.80, 67.90,
  23.614 -        68.00, 68.10, 68.20, 68.30, 68.40, 68.50, 68.60, 68.70, 68.80, 68.90,
  23.615 -        69.00, 69.10, 69.20, 69.30, 69.40, 69.50, 69.60, 69.70, 69.80, 69.90,
  23.616 -        70.00, 70.10, 70.20, 70.30, 70.40, 70.50, 70.60, 70.70, 70.80, 70.90,
  23.617 -        71.00, 71.10, 71.20, 71.30, 71.40, 71.50, 71.60, 71.70, 71.80, 71.90,
  23.618 -        72.00, 72.10, 72.20, 72.30, 72.40, 72.50, 72.60, 72.70, 72.80, 72.90,
  23.619 -        73.00, 73.10, 73.20, 73.30, 73.40, 73.50, 73.60, 73.70, 73.80, 73.90,
  23.620 -        74.00, 74.10, 74.20, 74.30, 74.40, 74.50, 74.60, 74.70, 74.80, 74.90,
  23.621 -        75.00, 75.10, 75.20, 75.30, 75.40, 75.50, 75.60, 75.70, 75.80, 75.90,
  23.622 -        76.00, 76.10, 76.20, 76.30, 76.40, 76.50, 76.60, 76.70, 76.80, 76.90,
  23.623 -        77.00, 77.10, 77.20, 77.30, 77.40, 77.50, 77.60, 77.70, 77.80, 77.90,
  23.624 -        78.00, 78.10, 78.20, 78.30, 78.40, 78.50, 78.60, 78.70, 78.80, 78.90,
  23.625 -        79.00, 79.10, 79.20, 79.30, 79.40, 79.50, 79.60, 79.70, 79.80, 79.90,
  23.626 -        80.00, 80.10, 80.20, 80.30, 80.40, 80.50, 80.60, 80.70, 80.80, 80.90,
  23.627 -        81.00, 81.10, 81.20, 81.30, 81.40, 81.50, 81.60, 81.70, 81.80, 81.90,
  23.628 -        82.00, 82.10, 82.20, 82.30, 82.40, 82.50, 82.60, 82.70, 82.80, 82.90,
  23.629 -        83.00, 83.10, 83.20, 83.30, 83.40, 83.50, 83.60, 83.70, 83.80, 83.90,
  23.630 -        84.00, 84.10, 84.20, 84.30, 84.40, 84.50, 84.60, 84.70, 84.80, 84.90,
  23.631 -        85.00, 85.10, 85.20, 85.30, 85.40, 85.50, 85.60, 85.70, 85.80, 85.90,
  23.632 -        86.00, 86.10, 86.20, 86.30, 86.40, 86.50, 86.60, 86.70, 86.80, 86.90,
  23.633 -        87.00, 87.10, 87.20, 87.30, 87.40, 87.50, 87.60, 87.70, 87.80, 87.90,
  23.634 -        88.00, 88.10, 88.20, 88.30, 88.40, 88.50, 88.60, 88.70, 88.80, 88.90,
  23.635 -        89.00, 89.10, 89.20, 89.30, 89.40, 89.50, 89.60, 89.70, 89.80, 89.90,
  23.636 -        90.00, 90.10, 90.20, 90.30, 90.40, 90.50, 90.60, 90.70, 90.80, 90.90,
  23.637 -        91.00, 91.10, 91.20, 91.30, 91.40, 91.50, 91.60, 91.70, 91.80, 91.90,
  23.638 -        92.00, 92.10, 92.20, 92.30, 92.40, 92.50, 92.60, 92.70, 92.80, 92.90,
  23.639 -        93.00, 93.10, 93.20, 93.30, 93.40, 93.50, 93.60, 93.70, 93.80, 93.90,
  23.640 -        94.00, 94.10, 94.20, 94.30, 94.40, 94.50, 94.60, 94.70, 94.80, 94.90,
  23.641 -        95.00, 96.00, 96.10, 96.20, 96.30, 96.40, 96.50, 96.60, 96.70, 96.80,
  23.642 -        96.90, 97.00, 97.10, 97.20, 97.30, 97.40, 97.50, 97.60, 97.70, 97.80,
  23.643 -        97.90, 98.00, 98.10, 98.20, 98.30, 98.40, 98.50, 98.60, 98.70, 98.80,
  23.644 -        98.90, 99.00, 99.10, 99.20, 99.30, 99.40, 99.50, 99.60, 99.70, 99.80,
  23.645 -        99.90, 100.00, 100.10, 100.20, 100.30, 100.40, 100.50, 100.60, 100.70,
  23.646 -        100.80, 100.90, 101.00, 101.10, 101.20, 101.30, 101.40, 101.50, 101.60,
  23.647 -        101.70, 101.80, 101.90, 102.00, 102.10, 102.20, 102.30, 102.40, 102.50,
  23.648 -        102.60, 102.70, 102.80, 102.90, 103.00, 103.10, 103.20, 103.30, 103.40,
  23.649 -        103.50, 103.60, 103.70, 103.80, 103.90, 104.00, 104.10, 104.20, 104.30,
  23.650 -        104.40, 104.50, 104.60, 104.70, 104.80, 104.90, 105.00 },
  23.651 -    { 0.46874, 0.46753, 0.46863, 0.46778, 0.46771, 0.46740, 0.46399, 0.46725,
  23.652 -        0.46422, 0.46493, 0.46519, 0.46289, 0.46231, 0.46265, 0.46173, 0.46049,
  23.653 -        0.45981, 0.45721, 0.45743, 0.45867, 0.45599, 0.45719, 0.45515, 0.45272,
  23.654 -        0.45396, 0.45432, 0.45263, 0.44926, 0.44898, 0.45062, 0.45024, 0.44840,
  23.655 -        0.44469, 0.44360, 0.44467, 0.44375, 0.44466, 0.44159, 0.44011, 0.43992,
  23.656 -        0.43979, 0.43863, 0.44184, 0.43579, 0.43560, 0.43449, 0.43185, 0.43021,
  23.657 -        0.43098, 0.42802, 0.42823, 0.42574, 0.42867, 0.42309, 0.42344, 0.42089,
  23.658 -        0.42158, 0.41947, 0.41761, 0.41779, 0.41695, 0.41723, 0.41540, 0.40973,
  23.659 -        0.41315, 0.40834, 0.40579, 0.40460, 0.40443, 0.40311, 0.39945, 0.40115,
  23.660 -        0.40351, 0.39952, 0.39711, 0.39469, 0.39120, 0.39256, 0.39325, 0.39029,
  23.661 -        0.38713, 0.38405, 0.38310, 0.38170, 0.38153, 0.38150, 0.37932, 0.37625,
  23.662 -        0.37639, 0.37513, 0.36934, 0.37158, 0.36743, 0.36725, 0.36754, 0.36367,
  23.663 -        0.36349, 0.36127, 0.35845, 0.35664, 0.35571, 0.34821, 0.35324, 0.34971,
  23.664 -        0.34971, 0.35046, 0.34550, 0.34232, 0.34107, 0.33753, 0.34123, 0.33774,
  23.665 -        0.33267, 0.33334, 0.32925, 0.32793, 0.32465, 0.32587, 0.32283, 0.32465,
  23.666 -        0.31899, 0.31939, 0.31609, 0.31355, 0.31146, 0.30996, 0.30590, 0.30941,
  23.667 -        0.30495, 0.30232, 0.30000, 0.30592, 0.30067, 0.29949, 0.29367, 0.29305,
  23.668 -        0.29100, 0.28859, 0.28693, 0.28460, 0.28802, 0.28214, 0.28012, 0.27655,
  23.669 -        0.27398, 0.27489, 0.27265, 0.27207, 0.27215, 0.26801, 0.27007, 0.26242,
  23.670 -        0.26167, 0.25807, 0.26060, 0.25424, 0.25617, 0.25184, 0.25211, 0.24963,
  23.671 -        0.24654, 0.24889, 0.24176, 0.24156, 0.24427, 0.23891, 0.23345, 0.23369,
  23.672 -        0.23111, 0.22584, 0.22942, 0.22945, 0.22418, 0.22058, 0.22445, 0.21787,
  23.673 -        0.22024, 0.22024, 0.21310, 0.21312, 0.21306, 0.21014, 0.21204, 0.20921,
  23.674 -        0.20454, 0.20235, 0.20241, 0.19851, 0.20200, 0.19926, 0.19586, 0.19828,
  23.675 -        0.19279, 0.19168, 0.18899, 0.18156, 0.18563, 0.18633, 0.18394, 0.18089,
  23.676 -        0.17964, 0.17685, 0.17630, 0.17696, 0.17502, 0.17138, 0.17179, 0.17177,
  23.677 -        0.16918, 0.16656, 0.16816, 0.16230, 0.16106, 0.15727, 0.15690, 0.15554,
  23.678 -        0.15106, 0.15557, 0.14960, 0.15174, 0.14814, 0.14777, 0.14698, 0.14451,
  23.679 -        0.14344, 0.14489, 0.14124, 0.14074, 0.13459, 0.13994, 0.13606, 0.13941,
  23.680 -        0.13231, 0.13203, 0.12701, 0.13091, 0.12635, 0.12740, 0.12701, 0.12425,
  23.681 -        0.12362, 0.12399, 0.12174, 0.12099, 0.11940, 0.11865, 0.11551, 0.11818,
  23.682 -        0.11366, 0.11303, 0.11050, 0.10948, 0.11105, 0.10813, 0.11124, 0.10642,
  23.683 -        0.10827, 0.11041, 0.10285, 0.10473, 0.09880, 0.10248, 0.09540, 0.09905,
  23.684 -        0.09991, 0.09618, 0.09506, 0.09641, 0.09405, 0.09332, 0.09131, 0.09068,
  23.685 -        0.09243, 0.08471, 0.08641, 0.08408, 0.08723, 0.08609, 0.08705, 0.08511,
  23.686 -        0.08122, 0.08053, 0.07947, 0.07747, 0.08165, 0.07549, 0.07670, 0.07824,
  23.687 -        0.07534, 0.07525, 0.07588, 0.07390, 0.07203, 0.07413, 0.07441, 0.06786,
  23.688 -        0.07505, 0.06733, 0.06543, 0.06713, 0.06481, 0.06620, 0.06451, 0.06596,
  23.689 -        0.06732, 0.06286, 0.06340, 0.06110, 0.06586, 0.05799, 0.06174, 0.05731,
  23.690 -        0.06178, 0.05907, 0.05567, 0.05586, 0.05653, 0.05728, 0.05270, 0.05378,
  23.691 -        0.05503, 0.05143, 0.05158, 0.05056, 0.04994, 0.04988, 0.04934, 0.05066,
  23.692 -        0.04965, 0.04614, 0.04920, 0.04983, 0.04556, 0.04978, 0.04673, 0.04594,
  23.693 -        0.04701, 0.04590, 0.04294, 0.04526, 0.04284, 0.04478, 0.04237, 0.03920,
  23.694 -        0.03740, 0.03988, 0.04055, 0.03832, 0.03959, 0.03906, 0.03856, 0.03672,
  23.695 -        0.03585, 0.03492, 0.03618, 0.03672, 0.03633, 0.03628, 0.03366, 0.03619,
  23.696 -        0.03560, 0.03449, 0.03371, 0.03517, 0.03176, 0.03113, 0.03128, 0.03226,
  23.697 -        0.03109, 0.03163, 0.02916, 0.02963, 0.03264, 0.03274, 0.02953, 0.02802,
  23.698 -        0.02895, 0.02822, 0.03060, 0.02658, 0.02759, 0.02779, 0.02575, 0.02637,
  23.699 -        0.02603, 0.02783, 0.02525, 0.02744, 0.02429, 0.02613, 0.02264, 0.02385,
  23.700 -        0.02370, 0.02473, 0.02229, 0.02346, 0.02491, 0.02229, 0.02040, 0.02307,
  23.701 -        0.02292, 0.02118, 0.02177, 0.02030, 0.02219, 0.01899, 0.02055, 0.01909,
  23.702 -        0.01870, 0.01938, 0.01836, 0.01850, 0.01899, 0.01918, 0.01671, 0.01957,
  23.703 -        0.01603, 0.01816, 0.01700, 0.01559, 0.01773, 0.01773, 0.01685, 0.01530,
  23.704 -        0.01612, 0.01622, 0.01467, 0.01627, 0.01564, 0.01448, 0.01467, 0.01612,
  23.705 -        0.01467, 0.01565, 0.01516, 0.01394, 0.01394, 0.01477, 0.01428, 0.01302,
  23.706 -        0.01423, 0.01146, 0.01311, 0.01418, 0.01302, 0.01224, 0.01269, 0.01190,
  23.707 -        0.01055, 0.01258, 0.01185, 0.01088, 0.01122, 0.01059, 0.01035, 0.01132,
  23.708 -        0.00947, 0.01234, 0.00914, 0.01054, 0.01054, 0.00918, 0.00841, 0.00987,
  23.709 -        0.01030, 0.00972, 0.01035, 0.00743, 0.00860, 0.00923, 0.00894, 0.00948,
  23.710 -        0.00908, 0.00801, 0.00792, 0.00826, 0.00724, 0.00801, 0.00728, 0.00782,
  23.711 -        0.00724, 0.00777, 0.00694, 0.00811, 0.00796, 0.00665, 0.00753, 0.00724,
  23.712 -        0.00583, 0.00656, 0.00675, 0.00646, 0.00787, 0.00719, 0.00660, 0.00796,
  23.713 -        0.00568, 0.00787, 0.00622, 0.00690, 0.00694, 0.00563, 0.00597, 0.00627,
  23.714 -        0.00660, 0.00578, 0.00719, 0.00442, 0.00524, 0.00583, 0.00617, 0.00622,
  23.715 -        0.00612, 0.00583, 0.00554, 0.00481, 0.00432, 0.00476, 0.00403, 0.00534,
  23.716 -        0.00418, 0.00490, 0.00466, 0.00534, 0.00520, 0.00379, 0.00510, 0.00422,
  23.717 -        0.00335, 0.00427, 0.00437, 0.00452, 0.00374, 0.00524, 0.00442, 0.00320,
  23.718 -        0.00403, 0.00388, 0.00461, 0.00379, 0.00345, 0.00364 },
  23.719 -    { 0.96640, 0.96400, 0.96580, 0.96400, 0.96420, 0.96330, 0.95670, 0.96270,
  23.720 -        0.95660, 0.95880, 0.95890, 0.95390, 0.95320, 0.95380, 0.95170, 0.94910,
  23.721 -        0.94770, 0.94270, 0.94250, 0.94510, 0.93970, 0.94230, 0.93810, 0.93310,
  23.722 -        0.93570, 0.93640, 0.93310, 0.92610, 0.92570, 0.92820, 0.92750, 0.92470,
  23.723 -        0.91640, 0.91400, 0.91720, 0.91460, 0.91660, 0.91030, 0.90710, 0.90660,
  23.724 -        0.90650, 0.90360, 0.91050, 0.89860, 0.89820, 0.89550, 0.89050, 0.88670,
  23.725 -        0.88830, 0.88260, 0.88290, 0.87750, 0.88350, 0.87280, 0.87280, 0.86770,
  23.726 -        0.86900, 0.86460, 0.86070, 0.86080, 0.85960, 0.85980, 0.85630, 0.84450,
  23.727 -        0.85140, 0.84130, 0.83630, 0.83390, 0.83410, 0.83120, 0.82320, 0.82660,
  23.728 -        0.83190, 0.82300, 0.81830, 0.81350, 0.80630, 0.80950, 0.81020, 0.80420,
  23.729 -        0.79810, 0.79170, 0.78960, 0.78720, 0.78590, 0.78610, 0.78180, 0.77540,
  23.730 -        0.77590, 0.77300, 0.76140, 0.76630, 0.75710, 0.75710, 0.75770, 0.74930,
  23.731 -        0.74910, 0.74500, 0.73840, 0.73500, 0.73370, 0.71750, 0.72810, 0.72090,
  23.732 -        0.72030, 0.72250, 0.71240, 0.70560, 0.70260, 0.69540, 0.70310, 0.69620,
  23.733 -        0.68590, 0.68740, 0.67870, 0.67590, 0.66930, 0.67200, 0.66590, 0.66930,
  23.734 -        0.65740, 0.65780, 0.65160, 0.64690, 0.64180, 0.63860, 0.63080, 0.63760,
  23.735 -        0.62840, 0.62330, 0.61840, 0.63040, 0.61950, 0.61740, 0.60520, 0.60400,
  23.736 -        0.60050, 0.59470, 0.59160, 0.58650, 0.59390, 0.58170, 0.57710, 0.57010,
  23.737 -        0.56440, 0.56660, 0.56190, 0.56080, 0.56090, 0.55270, 0.55660, 0.54050,
  23.738 -        0.53990, 0.53180, 0.53700, 0.52390, 0.52790, 0.51930, 0.51950, 0.51460,
  23.739 -        0.50850, 0.51290, 0.49840, 0.49800, 0.50330, 0.49200, 0.48130, 0.48150,
  23.740 -        0.47620, 0.46580, 0.47300, 0.47270, 0.46220, 0.45480, 0.46250, 0.44910,
  23.741 -        0.45430, 0.45400, 0.43910, 0.43900, 0.43930, 0.43380, 0.43720, 0.43110,
  23.742 -        0.42150, 0.41690, 0.41710, 0.40910, 0.41680, 0.41090, 0.40370, 0.40880,
  23.743 -        0.39740, 0.39520, 0.38930, 0.37410, 0.38230, 0.38400, 0.37900, 0.37280,
  23.744 -        0.37040, 0.36430, 0.36310, 0.36480, 0.36080, 0.35330, 0.35380, 0.35410,
  23.745 -        0.34870, 0.34340, 0.34650, 0.33470, 0.33180, 0.32400, 0.32350, 0.32060,
  23.746 -        0.31130, 0.32040, 0.30830, 0.31290, 0.30530, 0.30480, 0.30300, 0.29800,
  23.747 -        0.29560, 0.29850, 0.29100, 0.29050, 0.27730, 0.28850, 0.28050, 0.28740,
  23.748 -        0.27250, 0.27230, 0.26170, 0.26980, 0.26060, 0.26240, 0.26170, 0.25610,
  23.749 -        0.25490, 0.25530, 0.25110, 0.24920, 0.24610, 0.24430, 0.23820, 0.24380,
  23.750 -        0.23420, 0.23300, 0.22770, 0.22570, 0.22910, 0.22300, 0.22930, 0.21930,
  23.751 -        0.22310, 0.22770, 0.21230, 0.21590, 0.20360, 0.21110, 0.19670, 0.20420,
  23.752 -        0.20590, 0.19840, 0.19580, 0.19860, 0.19390, 0.19240, 0.18810, 0.18680,
  23.753 -        0.19040, 0.17470, 0.17800, 0.17330, 0.17970, 0.17770, 0.17960, 0.17560,
  23.754 -        0.16750, 0.16600, 0.16380, 0.15960, 0.16820, 0.15580, 0.15800, 0.16110,
  23.755 -        0.15540, 0.15520, 0.15650, 0.15270, 0.14830, 0.15290, 0.15340, 0.13980,
  23.756 -        0.15480, 0.13890, 0.13490, 0.13830, 0.13390, 0.13630, 0.13300, 0.13590,
  23.757 -        0.13870, 0.12970, 0.13070, 0.12580, 0.13560, 0.11940, 0.12720, 0.11800,
  23.758 -        0.12730, 0.12190, 0.11480, 0.11510, 0.11640, 0.11820, 0.10860, 0.11100,
  23.759 -        0.11340, 0.10590, 0.10620, 0.10410, 0.10300, 0.10270, 0.10160, 0.10430,
  23.760 -        0.10240, 0.09500, 0.10140, 0.10260, 0.09380, 0.10250, 0.09630, 0.09460,
  23.761 -        0.09680, 0.09460, 0.08860, 0.09320, 0.08820, 0.09230, 0.08740, 0.08080,
  23.762 -        0.07720, 0.08220, 0.08350, 0.07900, 0.08160, 0.08060, 0.07940, 0.07570,
  23.763 -        0.07390, 0.07190, 0.07450, 0.07560, 0.07490, 0.07470, 0.06940, 0.07460,
  23.764 -        0.07330, 0.07110, 0.06940, 0.07250, 0.06540, 0.06410, 0.06440, 0.06660,
  23.765 -        0.06410, 0.06520, 0.06030, 0.06100, 0.06720, 0.06740, 0.06080, 0.05770,
  23.766 -        0.05960, 0.05810, 0.06310, 0.05490, 0.05680, 0.05730, 0.05310, 0.05430,
  23.767 -        0.05360, 0.05730, 0.05200, 0.05650, 0.05010, 0.05380, 0.04670, 0.04920,
  23.768 -        0.04880, 0.05110, 0.04590, 0.04830, 0.05130, 0.04590, 0.04210, 0.04750,
  23.769 -        0.04720, 0.04370, 0.04500, 0.04180, 0.04570, 0.03910, 0.04240, 0.03930,
  23.770 -        0.03850, 0.03990, 0.03780, 0.03810, 0.03910, 0.03950, 0.03440, 0.04030,
  23.771 -        0.03310, 0.03740, 0.03500, 0.03210, 0.03650, 0.03650, 0.03470, 0.03150,
  23.772 -        0.03320, 0.03350, 0.03020, 0.03350, 0.03220, 0.02990, 0.03020, 0.03320,
  23.773 -        0.03020, 0.03240, 0.03130, 0.02870, 0.02870, 0.03040, 0.02940, 0.02680,
  23.774 -        0.02930, 0.02360, 0.02700, 0.02920, 0.02680, 0.02520, 0.02630, 0.02450,
  23.775 -        0.02180, 0.02590, 0.02450, 0.02240, 0.02310, 0.02190, 0.02130, 0.02330,
  23.776 -        0.01950, 0.02550, 0.01890, 0.02170, 0.02170, 0.01890, 0.01740, 0.02040,
  23.777 -        0.02120, 0.02010, 0.02140, 0.01530, 0.01770, 0.01900, 0.01840, 0.01960,
  23.778 -        0.01870, 0.01650, 0.01630, 0.01700, 0.01500, 0.01650, 0.01500, 0.01610,
  23.779 -        0.01490, 0.01600, 0.01430, 0.01670, 0.01640, 0.01370, 0.01550, 0.01490,
  23.780 -        0.01200, 0.01350, 0.01390, 0.01330, 0.01620, 0.01490, 0.01360, 0.01640,
  23.781 -        0.01170, 0.01620, 0.01290, 0.01420, 0.01430, 0.01160, 0.01230, 0.01300,
  23.782 -        0.01360, 0.01190, 0.01490, 0.00910, 0.01080, 0.01200, 0.01270, 0.01280,
  23.783 -        0.01260, 0.01200, 0.01140, 0.00990, 0.00890, 0.00980, 0.00830, 0.01100,
  23.784 -        0.00860, 0.01010, 0.00960, 0.01100, 0.01070, 0.00780, 0.01050, 0.00870,
  23.785 -        0.00690, 0.00880, 0.00900, 0.00930, 0.00780, 0.01080, 0.00920, 0.00660,
  23.786 -        0.00830, 0.00800, 0.00950, 0.00780, 0.00710, 0.00750 },
  23.787 -    { 0.03247, 0.03470, 0.03303, 0.03470, 0.03452, 0.03535, 0.04142, 0.03591,
  23.788 -        0.04152, 0.03950, 0.03941, 0.04398, 0.04461, 0.04407, 0.04597, 0.04831,
  23.789 -        0.04956, 0.05402, 0.05419, 0.05189, 0.05666, 0.05437, 0.05807, 0.06242,
  23.790 -        0.06017, 0.05955, 0.06242, 0.06844, 0.06878, 0.06664, 0.06724, 0.06963,
  23.791 -        0.07661, 0.07860, 0.07594, 0.07811, 0.07644, 0.08165, 0.08427, 0.08468,
  23.792 -        0.08476, 0.08711, 0.08149, 0.09112, 0.09144, 0.09358, 0.09751, 0.10046,
  23.793 -        0.09922, 0.10362, 0.10339, 0.10749, 0.10293, 0.11102, 0.11102, 0.11480,
  23.794 -        0.11384, 0.11707, 0.11990, 0.11982, 0.12069, 0.12054, 0.12305, 0.13132,
  23.795 -        0.12652, 0.13351, 0.13690, 0.13851, 0.13838, 0.14031, 0.14554, 0.14333,
  23.796 -        0.13984, 0.14567, 0.14869, 0.15172, 0.15618, 0.15421, 0.15378, 0.15746,
  23.797 -        0.16114, 0.16491, 0.16613, 0.16752, 0.16826, 0.16815, 0.17059, 0.17416,
  23.798 -        0.17388, 0.17547, 0.18167, 0.17908, 0.18390, 0.18390, 0.18359, 0.18785,
  23.799 -        0.18795, 0.18998, 0.19317, 0.19478, 0.19538, 0.20269, 0.19797, 0.20120,
  23.800 -        0.20147, 0.20049, 0.20489, 0.20773, 0.20895, 0.21182, 0.20875, 0.21151,
  23.801 -        0.21544, 0.21488, 0.21807, 0.21906, 0.22134, 0.22042, 0.22248, 0.22134,
  23.802 -        0.22523, 0.22510, 0.22702, 0.22842, 0.22989, 0.23079, 0.23289, 0.23107,
  23.803 -        0.23351, 0.23480, 0.23598, 0.23300, 0.23572, 0.23622, 0.23893, 0.23918,
  23.804 -        0.23990, 0.24103, 0.24161, 0.24252, 0.24118, 0.24333, 0.24406, 0.24509,
  23.805 -        0.24585, 0.24556, 0.24617, 0.24630, 0.24629, 0.24722, 0.24680, 0.24836,
  23.806 -        0.24841, 0.24899, 0.24863, 0.24943, 0.24922, 0.24963, 0.24962, 0.24979,
  23.807 -        0.24993, 0.24983, 0.25000, 0.25000, 0.24999, 0.24994, 0.24965, 0.24966,
  23.808 -        0.24943, 0.24883, 0.24927, 0.24926, 0.24857, 0.24796, 0.24859, 0.24741,
  23.809 -        0.24791, 0.24788, 0.24629, 0.24628, 0.24632, 0.24562, 0.24606, 0.24525,
  23.810 -        0.24384, 0.24309, 0.24313, 0.24174, 0.24308, 0.24206, 0.24073, 0.24168,
  23.811 -        0.23947, 0.23902, 0.23775, 0.23415, 0.23615, 0.23654, 0.23536, 0.23382,
  23.812 -        0.23320, 0.23159, 0.23126, 0.23172, 0.23062, 0.22848, 0.22863, 0.22871,
  23.813 -        0.22711, 0.22548, 0.22644, 0.22268, 0.22171, 0.21902, 0.21885, 0.21782,
  23.814 -        0.21439, 0.21774, 0.21325, 0.21499, 0.21209, 0.21190, 0.21119, 0.20920,
  23.815 -        0.20822, 0.20940, 0.20632, 0.20611, 0.20040, 0.20527, 0.20182, 0.20480,
  23.816 -        0.19824, 0.19815, 0.19321, 0.19701, 0.19269, 0.19355, 0.19321, 0.19051,
  23.817 -        0.18993, 0.19012, 0.18805, 0.18710, 0.18554, 0.18462, 0.18146, 0.18436,
  23.818 -        0.17935, 0.17871, 0.17585, 0.17476, 0.17661, 0.17327, 0.17672, 0.17121,
  23.819 -        0.17333, 0.17585, 0.16723, 0.16929, 0.16215, 0.16654, 0.15801, 0.16250,
  23.820 -        0.16351, 0.15904, 0.15746, 0.15916, 0.15630, 0.15538, 0.15272, 0.15191,
  23.821 -        0.15415, 0.14418, 0.14632, 0.14327, 0.14741, 0.14612, 0.14734, 0.14477,
  23.822 -        0.13944, 0.13844, 0.13697, 0.13413, 0.13991, 0.13153, 0.13304, 0.13515,
  23.823 -        0.13125, 0.13111, 0.13201, 0.12938, 0.12631, 0.12952, 0.12987, 0.12026,
  23.824 -        0.13084, 0.11961, 0.11670, 0.11917, 0.11597, 0.11772, 0.11531, 0.11743,
  23.825 -        0.11946, 0.11288, 0.11362, 0.10997, 0.11721, 0.10514, 0.11102, 0.10408,
  23.826 -        0.11109, 0.10704, 0.10162, 0.10185, 0.10285, 0.10423, 0.09681, 0.09868,
  23.827 -        0.10054, 0.09469, 0.09492, 0.09326, 0.09239, 0.09215, 0.09128, 0.09342,
  23.828 -        0.09191, 0.08597, 0.09112, 0.09207, 0.08500, 0.09199, 0.08703, 0.08565,
  23.829 -        0.08743, 0.08565, 0.08075, 0.08451, 0.08042, 0.08378, 0.07976, 0.07427,
  23.830 -        0.07124, 0.07544, 0.07653, 0.07276, 0.07494, 0.07410, 0.07310, 0.06997,
  23.831 -        0.06844, 0.06673, 0.06895, 0.06989, 0.06929, 0.06912, 0.06458, 0.06903,
  23.832 -        0.06793, 0.06605, 0.06458, 0.06724, 0.06112, 0.05999, 0.06025, 0.06216,
  23.833 -        0.05999, 0.06095, 0.05666, 0.05728, 0.06268, 0.06286, 0.05710, 0.05437,
  23.834 -        0.05605, 0.05472, 0.05912, 0.05189, 0.05357, 0.05402, 0.05028, 0.05135,
  23.835 -        0.05073, 0.05402, 0.04930, 0.05331, 0.04759, 0.05091, 0.04452, 0.04678,
  23.836 -        0.04642, 0.04849, 0.04379, 0.04597, 0.04867, 0.04379, 0.04033, 0.04524,
  23.837 -        0.04497, 0.04179, 0.04297, 0.04005, 0.04361, 0.03757, 0.04060, 0.03776,
  23.838 -        0.03702, 0.03831, 0.03637, 0.03665, 0.03757, 0.03794, 0.03322, 0.03868,
  23.839 -        0.03200, 0.03600, 0.03377, 0.03107, 0.03517, 0.03517, 0.03350, 0.03051,
  23.840 -        0.03210, 0.03238, 0.02929, 0.03238, 0.03116, 0.02901, 0.02929, 0.03210,
  23.841 -        0.02929, 0.03135, 0.03032, 0.02788, 0.02788, 0.02948, 0.02854, 0.02608,
  23.842 -        0.02844, 0.02304, 0.02627, 0.02835, 0.02608, 0.02457, 0.02561, 0.02390,
  23.843 -        0.02133, 0.02523, 0.02390, 0.02190, 0.02257, 0.02142, 0.02085, 0.02276,
  23.844 -        0.01912, 0.02485, 0.01854, 0.02123, 0.02123, 0.01854, 0.01710, 0.01998,
  23.845 -        0.02075, 0.01970, 0.02094, 0.01507, 0.01739, 0.01864, 0.01806, 0.01922,
  23.846 -        0.01835, 0.01623, 0.01603, 0.01671, 0.01477, 0.01623, 0.01477, 0.01584,
  23.847 -        0.01468, 0.01574, 0.01410, 0.01642, 0.01613, 0.01351, 0.01526, 0.01468,
  23.848 -        0.01186, 0.01332, 0.01371, 0.01312, 0.01594, 0.01468, 0.01341, 0.01613,
  23.849 -        0.01156, 0.01594, 0.01273, 0.01400, 0.01410, 0.01146, 0.01215, 0.01283,
  23.850 -        0.01341, 0.01176, 0.01468, 0.00902, 0.01068, 0.01186, 0.01254, 0.01264,
  23.851 -        0.01244, 0.01186, 0.01127, 0.00980, 0.00882, 0.00970, 0.00823, 0.01088,
  23.852 -        0.00853, 0.01000, 0.00951, 0.01088, 0.01059, 0.00774, 0.01039, 0.00862,
  23.853 -        0.00685, 0.00872, 0.00892, 0.00921, 0.00774, 0.01068, 0.00911, 0.00656,
  23.854 -        0.00823, 0.00794, 0.00941, 0.00774, 0.00705, 0.00744 },
  23.855 -    { 0.96287, 0.96035, 0.96224, 0.96035, 0.96056, 0.95961, 0.95271, 0.95899,
  23.856 -        0.95261, 0.95490, 0.95501, 0.94979, 0.94906, 0.94969, 0.94750, 0.94479,
  23.857 -        0.94334, 0.93815, 0.93794, 0.94063, 0.93503, 0.93773, 0.93338, 0.92820,
  23.858 -        0.93089, 0.93162, 0.92820, 0.92097, 0.92056, 0.92314, 0.92242, 0.91953,
  23.859 -        0.91097, 0.90851, 0.91180, 0.90912, 0.91118, 0.90470, 0.90141, 0.90090,
  23.860 -        0.90079, 0.89782, 0.90490, 0.89268, 0.89227, 0.88950, 0.88438, 0.88049,
  23.861 -        0.88213, 0.87629, 0.87660, 0.87107, 0.87721, 0.86627, 0.86627, 0.86106,
  23.862 -        0.86239, 0.85789, 0.85391, 0.85401, 0.85279, 0.85299, 0.84942, 0.83740,
  23.863 -        0.84443, 0.83414, 0.82905, 0.82661, 0.82681, 0.82386, 0.81572, 0.81918,
  23.864 -        0.82457, 0.81552, 0.81074, 0.80587, 0.79855, 0.80180, 0.80251, 0.79642,
  23.865 -        0.79023, 0.78374, 0.78161, 0.77918, 0.77786, 0.77806, 0.77370, 0.76722,
  23.866 -        0.76773, 0.76479, 0.75305, 0.75801, 0.74869, 0.74869, 0.74930, 0.74081,
  23.867 -        0.74060, 0.73646, 0.72979, 0.72635, 0.72504, 0.70868, 0.71938, 0.71211,
  23.868 -        0.71150, 0.71372, 0.70353, 0.69667, 0.69364, 0.68638, 0.69415, 0.68719,
  23.869 -        0.67680, 0.67831, 0.66955, 0.66673, 0.66008, 0.66280, 0.65665, 0.66008,
  23.870 -        0.64810, 0.64850, 0.64226, 0.63753, 0.63240, 0.62918, 0.62134, 0.62818,
  23.871 -        0.61893, 0.61380, 0.60888, 0.62094, 0.60998, 0.60787, 0.59562, 0.59441,
  23.872 -        0.59090, 0.58508, 0.58197, 0.57685, 0.58427, 0.57203, 0.56742, 0.56040,
  23.873 -        0.55468, 0.55689, 0.55217, 0.55107, 0.55117, 0.54295, 0.54686, 0.53073,
  23.874 -        0.53013, 0.52202, 0.52723, 0.51411, 0.51811, 0.50951, 0.50971, 0.50480,
  23.875 -        0.49870, 0.50310, 0.48860, 0.48820, 0.49350, 0.48220, 0.47151, 0.47171,
  23.876 -        0.46641, 0.45602, 0.46321, 0.46292, 0.45243, 0.44504, 0.45273, 0.43935,
  23.877 -        0.44454, 0.44424, 0.42937, 0.42927, 0.42957, 0.42409, 0.42748, 0.42139,
  23.878 -        0.41182, 0.40724, 0.40744, 0.39946, 0.40714, 0.40126, 0.39408, 0.39916,
  23.879 -        0.38781, 0.38562, 0.37974, 0.36462, 0.37278, 0.37447, 0.36949, 0.36332,
  23.880 -        0.36094, 0.35487, 0.35367, 0.35536, 0.35139, 0.34393, 0.34443, 0.34473,
  23.881 -        0.33936, 0.33409, 0.33717, 0.32545, 0.32257, 0.31483, 0.31433, 0.31145,
  23.882 -        0.30223, 0.31125, 0.29925, 0.30381, 0.29627, 0.29578, 0.29399, 0.28903,
  23.883 -        0.28666, 0.28953, 0.28210, 0.28160, 0.26853, 0.27962, 0.27170, 0.27853,
  23.884 -        0.26377, 0.26358, 0.25309, 0.26110, 0.25200, 0.25378, 0.25309, 0.24754,
  23.885 -        0.24636, 0.24675, 0.24260, 0.24072, 0.23766, 0.23588, 0.22985, 0.23538,
  23.886 -        0.22590, 0.22471, 0.21948, 0.21751, 0.22086, 0.21484, 0.22106, 0.21119,
  23.887 -        0.21494, 0.21948, 0.20428, 0.20784, 0.19571, 0.20310, 0.18891, 0.19630,
  23.888 -        0.19798, 0.19058, 0.18802, 0.19078, 0.18615, 0.18467, 0.18044, 0.17916,
  23.889 -        0.18271, 0.16726, 0.17050, 0.16588, 0.17217, 0.17021, 0.17208, 0.16814,
  23.890 -        0.16018, 0.15871, 0.15655, 0.15242, 0.16087, 0.14869, 0.15085, 0.15390,
  23.891 -        0.14830, 0.14810, 0.14938, 0.14565, 0.14133, 0.14585, 0.14634, 0.13300,
  23.892 -        0.14771, 0.13212, 0.12820, 0.13153, 0.12723, 0.12957, 0.12634, 0.12918,
  23.893 -        0.13193, 0.12312, 0.12409, 0.11930, 0.12889, 0.11305, 0.12067, 0.11168,
  23.894 -        0.12077, 0.11549, 0.10855, 0.10884, 0.11011, 0.11187, 0.10250, 0.10484,
  23.895 -        0.10719, 0.09987, 0.10016, 0.09811, 0.09704, 0.09675, 0.09568, 0.09831,
  23.896 -        0.09646, 0.08925, 0.09548, 0.09665, 0.08809, 0.09656, 0.09052, 0.08886,
  23.897 -        0.09101, 0.08886, 0.08303, 0.08750, 0.08264, 0.08663, 0.08186, 0.07546,
  23.898 -        0.07197, 0.07682, 0.07808, 0.07371, 0.07623, 0.07526, 0.07410, 0.07051,
  23.899 -        0.06877, 0.06684, 0.06935, 0.07042, 0.06974, 0.06955, 0.06442, 0.06945,
  23.900 -        0.06819, 0.06606, 0.06442, 0.06742, 0.06055, 0.05930, 0.05959, 0.06171,
  23.901 -        0.05930, 0.06036, 0.05563, 0.05631, 0.06229, 0.06249, 0.05612, 0.05313,
  23.902 -        0.05496, 0.05352, 0.05833, 0.05044, 0.05226, 0.05275, 0.04870, 0.04986,
  23.903 -        0.04919, 0.05275, 0.04765, 0.05198, 0.04582, 0.04938, 0.04256, 0.04496,
  23.904 -        0.04458, 0.04678, 0.04180, 0.04410, 0.04698, 0.04180, 0.03816, 0.04333,
  23.905 -        0.04304, 0.03969, 0.04094, 0.03788, 0.04161, 0.03530, 0.03845, 0.03549,
  23.906 -        0.03473, 0.03606, 0.03406, 0.03435, 0.03530, 0.03568, 0.03083, 0.03644,
  23.907 -        0.02959, 0.03368, 0.03140, 0.02865, 0.03282, 0.03282, 0.03111, 0.02808,
  23.908 -        0.02969, 0.02997, 0.02685, 0.02997, 0.02874, 0.02656, 0.02685, 0.02969,
  23.909 -        0.02685, 0.02893, 0.02789, 0.02543, 0.02543, 0.02704, 0.02609, 0.02363,
  23.910 -        0.02600, 0.02063, 0.02382, 0.02590, 0.02363, 0.02213, 0.02316, 0.02147,
  23.911 -        0.01894, 0.02279, 0.02147, 0.01950, 0.02016, 0.01903, 0.01847, 0.02034,
  23.912 -        0.01679, 0.02241, 0.01623, 0.01884, 0.01884, 0.01623, 0.01484, 0.01763,
  23.913 -        0.01838, 0.01735, 0.01856, 0.01289, 0.01512, 0.01632, 0.01577, 0.01688,
  23.914 -        0.01605, 0.01400, 0.01382, 0.01447, 0.01262, 0.01400, 0.01262, 0.01363,
  23.915 -        0.01252, 0.01354, 0.01197, 0.01419, 0.01391, 0.01142, 0.01308, 0.01252,
  23.916 -        0.00987, 0.01124, 0.01161, 0.01106, 0.01373, 0.01252, 0.01133, 0.01391,
  23.917 -        0.00959, 0.01373, 0.01069, 0.01188, 0.01197, 0.00950, 0.01014, 0.01078,
  23.918 -        0.01133, 0.00978, 0.01252, 0.00724, 0.00877, 0.00987, 0.01051, 0.01060,
  23.919 -        0.01041, 0.00987, 0.00932, 0.00796, 0.00706, 0.00787, 0.00652, 0.00896,
  23.920 -        0.00679, 0.00814, 0.00769, 0.00896, 0.00868, 0.00608, 0.00850, 0.00688,
  23.921 -        0.00528, 0.00697, 0.00715, 0.00742, 0.00608, 0.00877, 0.00733, 0.00501,
  23.922 -        0.00652, 0.00625, 0.00760, 0.00608, 0.00545, 0.00581 },
  23.923 +double modulation5[6][547] = { { 50.00, 50.10, 50.20, 50.30, 50.40, 50.50,
  23.924 +    50.60, 50.70, 50.80, 50.90, 51.00, 51.10, 51.20, 51.30, 51.40, 51.50,
  23.925 +    51.60, 51.70, 51.80, 51.90, 52.00, 52.10, 52.20, 52.30, 52.40, 52.50,
  23.926 +    52.60, 52.70, 52.80, 52.90, 53.00, 53.10, 53.20, 53.30, 53.40, 53.50,
  23.927 +    53.60, 53.70, 53.80, 53.90, 54.00, 54.10, 54.20, 54.30, 54.40, 54.50,
  23.928 +    54.60, 54.70, 54.80, 54.90, 55.00, 55.10, 55.20, 55.30, 55.40, 55.50,
  23.929 +    55.60, 55.70, 55.80, 55.90, 56.00, 56.10, 56.20, 56.30, 56.40, 56.50,
  23.930 +    56.60, 56.70, 56.80, 56.90, 57.00, 57.10, 57.20, 57.30, 57.40, 57.50,
  23.931 +    57.60, 57.70, 57.80, 57.90, 58.00, 58.10, 58.20, 58.30, 58.40, 58.50,
  23.932 +    58.60, 58.70, 58.80, 58.90, 59.00, 59.10, 59.20, 59.30, 59.40, 59.50,
  23.933 +    59.60, 59.70, 59.80, 59.90, 60.00, 60.10, 60.20, 60.30, 60.40, 60.50,
  23.934 +    60.60, 60.70, 60.80, 60.90, 61.00, 61.10, 61.20, 61.30, 61.40, 61.50,
  23.935 +    61.60, 61.70, 61.80, 61.90, 62.00, 62.10, 62.20, 62.30, 62.40, 62.50,
  23.936 +    62.60, 62.70, 62.80, 62.90, 63.00, 63.10, 63.20, 63.30, 63.40, 63.50,
  23.937 +    63.60, 63.70, 63.80, 63.90, 64.00, 64.10, 64.20, 64.30, 64.40, 64.50,
  23.938 +    64.60, 64.70, 64.80, 64.90, 65.00, 65.10, 65.20, 65.30, 65.40, 65.50,
  23.939 +    65.60, 65.70, 65.80, 65.90, 66.00, 66.10, 66.20, 66.30, 66.40, 66.50,
  23.940 +    66.60, 66.70, 66.80, 66.90, 67.00, 67.10, 67.20, 67.30, 67.40, 67.50,
  23.941 +    67.60, 67.70, 67.80, 67.90, 68.00, 68.10, 68.20, 68.30, 68.40, 68.50,
  23.942 +    68.60, 68.70, 68.80, 68.90, 69.00, 69.10, 69.20, 69.30, 69.40, 69.50,
  23.943 +    69.60, 69.70, 69.80, 69.90, 70.00, 70.10, 70.20, 70.30, 70.40, 70.50,
  23.944 +    70.60, 70.70, 70.80, 70.90, 71.00, 71.10, 71.20, 71.30, 71.40, 71.50,
  23.945 +    71.60, 71.70, 71.80, 71.90, 72.00, 72.10, 72.20, 72.30, 72.40, 72.50,
  23.946 +    72.60, 72.70, 72.80, 72.90, 73.00, 73.10, 73.20, 73.30, 73.40, 73.50,
  23.947 +    73.60, 73.70, 73.80, 73.90, 74.00, 74.10, 74.20, 74.30, 74.40, 74.50,
  23.948 +    74.60, 74.70, 74.80, 74.90, 75.00, 75.10, 75.20, 75.30, 75.40, 75.50,
  23.949 +    75.60, 75.70, 75.80, 75.90, 76.00, 76.10, 76.20, 76.30, 76.40, 76.50,
  23.950 +    76.60, 76.70, 76.80, 76.90, 77.00, 77.10, 77.20, 77.30, 77.40, 77.50,
  23.951 +    77.60, 77.70, 77.80, 77.90, 78.00, 78.10, 78.20, 78.30, 78.40, 78.50,
  23.952 +    78.60, 78.70, 78.80, 78.90, 79.00, 79.10, 79.20, 79.30, 79.40, 79.50,
  23.953 +    79.60, 79.70, 79.80, 79.90, 80.00, 80.10, 80.20, 80.30, 80.40, 80.50,
  23.954 +    80.60, 80.70, 80.80, 80.90, 81.00, 81.10, 81.20, 81.30, 81.40, 81.50,
  23.955 +    81.60, 81.70, 81.80, 81.90, 82.00, 82.10, 82.20, 82.30, 82.40, 82.50,
  23.956 +    82.60, 82.70, 82.80, 82.90, 83.00, 83.10, 83.20, 83.30, 83.40, 83.50,
  23.957 +    83.60, 83.70, 83.80, 83.90, 84.00, 84.10, 84.20, 84.30, 84.40, 84.50,
  23.958 +    84.60, 84.70, 84.80, 84.90, 85.00, 85.10, 85.20, 85.30, 85.40, 85.50,
  23.959 +    85.60, 85.70, 85.80, 85.90, 86.00, 86.10, 86.20, 86.30, 86.40, 86.50,
  23.960 +    86.60, 86.70, 86.80, 86.90, 87.00, 87.10, 87.20, 87.30, 87.40, 87.50,
  23.961 +    87.60, 87.70, 87.80, 87.90, 88.00, 88.10, 88.20, 88.30, 88.40, 88.50,
  23.962 +    88.60, 88.70, 88.80, 88.90, 89.00, 89.10, 89.20, 89.30, 89.40, 89.50,
  23.963 +    89.60, 89.70, 89.80, 89.90, 90.00, 90.10, 90.20, 90.30, 90.40, 90.50,
  23.964 +    90.60, 90.70, 90.80, 90.90, 91.00, 91.10, 91.20, 91.30, 91.40, 91.50,
  23.965 +    91.60, 91.70, 91.80, 91.90, 92.00, 92.10, 92.20, 92.30, 92.40, 92.50,
  23.966 +    92.60, 92.70, 92.80, 92.90, 93.00, 93.10, 93.20, 93.30, 93.40, 93.50,
  23.967 +    93.60, 93.70, 93.80, 93.90, 94.00, 94.10, 94.20, 94.30, 94.40, 94.50,
  23.968 +    94.60, 94.70, 94.80, 94.90, 95.00, 96.00, 96.10, 96.20, 96.30, 96.40,
  23.969 +    96.50, 96.60, 96.70, 96.80, 96.90, 97.00, 97.10, 97.20, 97.30, 97.40,
  23.970 +    97.50, 97.60, 97.70, 97.80, 97.90, 98.00, 98.10, 98.20, 98.30, 98.40,
  23.971 +    98.50, 98.60, 98.70, 98.80, 98.90, 99.00, 99.10, 99.20, 99.30, 99.40,
  23.972 +    99.50, 99.60, 99.70, 99.80, 99.90, 100.00, 100.10, 100.20, 100.30, 100.40,
  23.973 +    100.50, 100.60, 100.70, 100.80, 100.90, 101.00, 101.10, 101.20, 101.30,
  23.974 +    101.40, 101.50, 101.60, 101.70, 101.80, 101.90, 102.00, 102.10, 102.20,
  23.975 +    102.30, 102.40, 102.50, 102.60, 102.70, 102.80, 102.90, 103.00, 103.10,
  23.976 +    103.20, 103.30, 103.40, 103.50, 103.60, 103.70, 103.80, 103.90, 104.00,
  23.977 +    104.10, 104.20, 104.30, 104.40, 104.50, 104.60, 104.70, 104.80, 104.90,
  23.978 +    105.00 }, { 0.46874, 0.46753, 0.46863, 0.46778, 0.46771, 0.46740, 0.46399,
  23.979 +    0.46725, 0.46422, 0.46493, 0.46519, 0.46289, 0.46231, 0.46265, 0.46173,
  23.980 +    0.46049, 0.45981, 0.45721, 0.45743, 0.45867, 0.45599, 0.45719, 0.45515,
  23.981 +    0.45272, 0.45396, 0.45432, 0.45263, 0.44926, 0.44898, 0.45062, 0.45024,
  23.982 +    0.44840, 0.44469, 0.44360, 0.44467, 0.44375, 0.44466, 0.44159, 0.44011,
  23.983 +    0.43992, 0.43979, 0.43863, 0.44184, 0.43579, 0.43560, 0.43449, 0.43185,
  23.984 +    0.43021, 0.43098, 0.42802, 0.42823, 0.42574, 0.42867, 0.42309, 0.42344,
  23.985 +    0.42089, 0.42158, 0.41947, 0.41761, 0.41779, 0.41695, 0.41723, 0.41540,
  23.986 +    0.40973, 0.41315, 0.40834, 0.40579, 0.40460, 0.40443, 0.40311, 0.39945,
  23.987 +    0.40115, 0.40351, 0.39952, 0.39711, 0.39469, 0.39120, 0.39256, 0.39325,
  23.988 +    0.39029, 0.38713, 0.38405, 0.38310, 0.38170, 0.38153, 0.38150, 0.37932,
  23.989 +    0.37625, 0.37639, 0.37513, 0.36934, 0.37158, 0.36743, 0.36725, 0.36754,
  23.990 +    0.36367, 0.36349, 0.36127, 0.35845, 0.35664, 0.35571, 0.34821, 0.35324,
  23.991 +    0.34971, 0.34971, 0.35046, 0.34550, 0.34232, 0.34107, 0.33753, 0.34123,
  23.992 +    0.33774, 0.33267, 0.33334, 0.32925, 0.32793, 0.32465, 0.32587, 0.32283,
  23.993 +    0.32465, 0.31899, 0.31939, 0.31609, 0.31355, 0.31146, 0.30996, 0.30590,
  23.994 +    0.30941, 0.30495, 0.30232, 0.30000, 0.30592, 0.30067, 0.29949, 0.29367,
  23.995 +    0.29305, 0.29100, 0.28859, 0.28693, 0.28460, 0.28802, 0.28214, 0.28012,
  23.996 +    0.27655, 0.27398, 0.27489, 0.27265, 0.27207, 0.27215, 0.26801, 0.27007,
  23.997 +    0.26242, 0.26167, 0.25807, 0.26060, 0.25424, 0.25617, 0.25184, 0.25211,
  23.998 +    0.24963, 0.24654, 0.24889, 0.24176, 0.24156, 0.24427, 0.23891, 0.23345,
  23.999 +    0.23369, 0.23111, 0.22584, 0.22942, 0.22945, 0.22418, 0.22058, 0.22445,
 23.1000 +    0.21787, 0.22024, 0.22024, 0.21310, 0.21312, 0.21306, 0.21014, 0.21204,
 23.1001 +    0.20921, 0.20454, 0.20235, 0.20241, 0.19851, 0.20200, 0.19926, 0.19586,
 23.1002 +    0.19828, 0.19279, 0.19168, 0.18899, 0.18156, 0.18563, 0.18633, 0.18394,
 23.1003 +    0.18089, 0.17964, 0.17685, 0.17630, 0.17696, 0.17502, 0.17138, 0.17179,
 23.1004 +    0.17177, 0.16918, 0.16656, 0.16816, 0.16230, 0.16106, 0.15727, 0.15690,
 23.1005 +    0.15554, 0.15106, 0.15557, 0.14960, 0.15174, 0.14814, 0.14777, 0.14698,
 23.1006 +    0.14451, 0.14344, 0.14489, 0.14124, 0.14074, 0.13459, 0.13994, 0.13606,
 23.1007 +    0.13941, 0.13231, 0.13203, 0.12701, 0.13091, 0.12635, 0.12740, 0.12701,
 23.1008 +    0.12425, 0.12362, 0.12399, 0.12174, 0.12099, 0.11940, 0.11865, 0.11551,
 23.1009 +    0.11818, 0.11366, 0.11303, 0.11050, 0.10948, 0.11105, 0.10813, 0.11124,
 23.1010 +    0.10642, 0.10827, 0.11041, 0.10285, 0.10473, 0.09880, 0.10248, 0.09540,
 23.1011 +    0.09905, 0.09991, 0.09618, 0.09506, 0.09641, 0.09405, 0.09332, 0.09131,
 23.1012 +    0.09068, 0.09243, 0.08471, 0.08641, 0.08408, 0.08723, 0.08609, 0.08705,
 23.1013 +    0.08511, 0.08122, 0.08053, 0.07947, 0.07747, 0.08165, 0.07549, 0.07670,
 23.1014 +    0.07824, 0.07534, 0.07525, 0.07588, 0.07390, 0.07203, 0.07413, 0.07441,
 23.1015 +    0.06786, 0.07505, 0.06733, 0.06543, 0.06713, 0.06481, 0.06620, 0.06451,
 23.1016 +    0.06596, 0.06732, 0.06286, 0.06340, 0.06110, 0.06586, 0.05799, 0.06174,
 23.1017 +    0.05731, 0.06178, 0.05907, 0.05567, 0.05586, 0.05653, 0.05728, 0.05270,
 23.1018 +    0.05378, 0.05503, 0.05143, 0.05158, 0.05056, 0.04994, 0.04988, 0.04934,
 23.1019 +    0.05066, 0.04965, 0.04614, 0.04920, 0.04983, 0.04556, 0.04978, 0.04673,
 23.1020 +    0.04594, 0.04701, 0.04590, 0.04294, 0.04526, 0.04284, 0.04478, 0.04237,
 23.1021 +    0.03920, 0.03740, 0.03988, 0.04055, 0.03832, 0.03959, 0.03906, 0.03856,
 23.1022 +    0.03672, 0.03585, 0.03492, 0.03618, 0.03672, 0.03633, 0.03628, 0.03366,
 23.1023 +    0.03619, 0.03560, 0.03449, 0.03371, 0.03517, 0.03176, 0.03113, 0.03128,
 23.1024 +    0.03226, 0.03109, 0.03163, 0.02916, 0.02963, 0.03264, 0.03274, 0.02953,
 23.1025 +    0.02802, 0.02895, 0.02822, 0.03060, 0.02658, 0.02759, 0.02779, 0.02575,
 23.1026 +    0.02637, 0.02603, 0.02783, 0.02525, 0.02744, 0.02429, 0.02613, 0.02264,
 23.1027 +    0.02385, 0.02370, 0.02473, 0.02229, 0.02346, 0.02491, 0.02229, 0.02040,
 23.1028 +    0.02307, 0.02292, 0.02118, 0.02177, 0.02030, 0.02219, 0.01899, 0.02055,
 23.1029 +    0.01909, 0.01870, 0.01938, 0.01836, 0.01850, 0.01899, 0.01918, 0.01671,
 23.1030 +    0.01957, 0.01603, 0.01816, 0.01700, 0.01559, 0.01773, 0.01773, 0.01685,
 23.1031 +    0.01530, 0.01612, 0.01622, 0.01467, 0.01627, 0.01564, 0.01448, 0.01467,
 23.1032 +    0.01612, 0.01467, 0.01565, 0.01516, 0.01394, 0.01394, 0.01477, 0.01428,
 23.1033 +    0.01302, 0.01423, 0.01146, 0.01311, 0.01418, 0.01302, 0.01224, 0.01269,
 23.1034 +    0.01190, 0.01055, 0.01258, 0.01185, 0.01088, 0.01122, 0.01059, 0.01035,
 23.1035 +    0.01132, 0.00947, 0.01234, 0.00914, 0.01054, 0.01054, 0.00918, 0.00841,
 23.1036 +    0.00987, 0.01030, 0.00972, 0.01035, 0.00743, 0.00860, 0.00923, 0.00894,
 23.1037 +    0.00948, 0.00908, 0.00801, 0.00792, 0.00826, 0.00724, 0.00801, 0.00728,
 23.1038 +    0.00782, 0.00724, 0.00777, 0.00694, 0.00811, 0.00796, 0.00665, 0.00753,
 23.1039 +    0.00724, 0.00583, 0.00656, 0.00675, 0.00646, 0.00787, 0.00719, 0.00660,
 23.1040 +    0.00796, 0.00568, 0.00787, 0.00622, 0.00690, 0.00694, 0.00563, 0.00597,
 23.1041 +    0.00627, 0.00660, 0.00578, 0.00719, 0.00442, 0.00524, 0.00583, 0.00617,
 23.1042 +    0.00622, 0.00612, 0.00583, 0.00554, 0.00481, 0.00432, 0.00476, 0.00403,
 23.1043 +    0.00534, 0.00418, 0.00490, 0.00466, 0.00534, 0.00520, 0.00379, 0.00510,
 23.1044 +    0.00422, 0.00335, 0.00427, 0.00437, 0.00452, 0.00374, 0.00524, 0.00442,
 23.1045 +    0.00320, 0.00403, 0.00388, 0.00461, 0.00379, 0.00345, 0.00364 }, { 0.96640,
 23.1046 +    0.96400, 0.96580, 0.96400, 0.96420, 0.96330, 0.95670, 0.96270, 0.95660,
 23.1047 +    0.95880, 0.95890, 0.95390, 0.95320, 0.95380, 0.95170, 0.94910, 0.94770,
 23.1048 +    0.94270, 0.94250, 0.94510, 0.93970, 0.94230, 0.93810, 0.93310, 0.93570,
 23.1049 +    0.93640, 0.93310, 0.92610, 0.92570, 0.92820, 0.92750, 0.92470, 0.91640,
 23.1050 +    0.91400, 0.91720, 0.91460, 0.91660, 0.91030, 0.90710, 0.90660, 0.90650,
 23.1051 +    0.90360, 0.91050, 0.89860, 0.89820, 0.89550, 0.89050, 0.88670, 0.88830,
 23.1052 +    0.88260, 0.88290, 0.87750, 0.88350, 0.87280, 0.87280, 0.86770, 0.86900,
 23.1053 +    0.86460, 0.86070, 0.86080, 0.85960, 0.85980, 0.85630, 0.84450, 0.85140,
 23.1054 +    0.84130, 0.83630, 0.83390, 0.83410, 0.83120, 0.82320, 0.82660, 0.83190,
 23.1055 +    0.82300, 0.81830, 0.81350, 0.80630, 0.80950, 0.81020, 0.80420, 0.79810,
 23.1056 +    0.79170, 0.78960, 0.78720, 0.78590, 0.78610, 0.78180, 0.77540, 0.77590,
 23.1057 +    0.77300, 0.76140, 0.76630, 0.75710, 0.75710, 0.75770, 0.74930, 0.74910,
 23.1058 +    0.74500, 0.73840, 0.73500, 0.73370, 0.71750, 0.72810, 0.72090, 0.72030,
 23.1059 +    0.72250, 0.71240, 0.70560, 0.70260, 0.69540, 0.70310, 0.69620, 0.68590,
 23.1060 +    0.68740, 0.67870, 0.67590, 0.66930, 0.67200, 0.66590, 0.66930, 0.65740,
 23.1061 +    0.65780, 0.65160, 0.64690, 0.64180, 0.63860, 0.63080, 0.63760, 0.62840,
 23.1062 +    0.62330, 0.61840, 0.63040, 0.61950, 0.61740, 0.60520, 0.60400, 0.60050,
 23.1063 +    0.59470, 0.59160, 0.58650, 0.59390, 0.58170, 0.57710, 0.57010, 0.56440,
 23.1064 +    0.56660, 0.56190, 0.56080, 0.56090, 0.55270, 0.55660, 0.54050, 0.53990,
 23.1065 +    0.53180, 0.53700, 0.52390, 0.52790, 0.51930, 0.51950, 0.51460, 0.50850,
 23.1066 +    0.51290, 0.49840, 0.49800, 0.50330, 0.49200, 0.48130, 0.48150, 0.47620,
 23.1067 +    0.46580, 0.47300, 0.47270, 0.46220, 0.45480, 0.46250, 0.44910, 0.45430,
 23.1068 +    0.45400, 0.43910, 0.43900, 0.43930, 0.43380, 0.43720, 0.43110, 0.42150,
 23.1069 +    0.41690, 0.41710, 0.40910, 0.41680, 0.41090, 0.40370, 0.40880, 0.39740,
 23.1070 +    0.39520, 0.38930, 0.37410, 0.38230, 0.38400, 0.37900, 0.37280, 0.37040,
 23.1071 +    0.36430, 0.36310, 0.36480, 0.36080, 0.35330, 0.35380, 0.35410, 0.34870,
 23.1072 +    0.34340, 0.34650, 0.33470, 0.33180, 0.32400, 0.32350, 0.32060, 0.31130,
 23.1073 +    0.32040, 0.30830, 0.31290, 0.30530, 0.30480, 0.30300, 0.29800, 0.29560,
 23.1074 +    0.29850, 0.29100, 0.29050, 0.27730, 0.28850, 0.28050, 0.28740, 0.27250,
 23.1075 +    0.27230, 0.26170, 0.26980, 0.26060, 0.26240, 0.26170, 0.25610, 0.25490,
 23.1076 +    0.25530, 0.25110, 0.24920, 0.24610, 0.24430, 0.23820, 0.24380, 0.23420,
 23.1077 +    0.23300, 0.22770, 0.22570, 0.22910, 0.22300, 0.22930, 0.21930, 0.22310,
 23.1078 +    0.22770, 0.21230, 0.21590, 0.20360, 0.21110, 0.19670, 0.20420, 0.20590,
 23.1079 +    0.19840, 0.19580, 0.19860, 0.19390, 0.19240, 0.18810, 0.18680, 0.19040,
 23.1080 +    0.17470, 0.17800, 0.17330, 0.17970, 0.17770, 0.17960, 0.17560, 0.16750,
 23.1081 +    0.16600, 0.16380, 0.15960, 0.16820, 0.15580, 0.15800, 0.16110, 0.15540,
 23.1082 +    0.15520, 0.15650, 0.15270, 0.14830, 0.15290, 0.15340, 0.13980, 0.15480,
 23.1083 +    0.13890, 0.13490, 0.13830, 0.13390, 0.13630, 0.13300, 0.13590, 0.13870,
 23.1084 +    0.12970, 0.13070, 0.12580, 0.13560, 0.11940, 0.12720, 0.11800, 0.12730,
 23.1085 +    0.12190, 0.11480, 0.11510, 0.11640, 0.11820, 0.10860, 0.11100, 0.11340,
 23.1086 +    0.10590, 0.10620, 0.10410, 0.10300, 0.10270, 0.10160, 0.10430, 0.10240,
 23.1087 +    0.09500, 0.10140, 0.10260, 0.09380, 0.10250, 0.09630, 0.09460, 0.09680,
 23.1088 +    0.09460, 0.08860, 0.09320, 0.08820, 0.09230, 0.08740, 0.08080, 0.07720,
 23.1089 +    0.08220, 0.08350, 0.07900, 0.08160, 0.08060, 0.07940, 0.07570, 0.07390,
 23.1090 +    0.07190, 0.07450, 0.07560, 0.07490, 0.07470, 0.06940, 0.07460, 0.07330,
 23.1091 +    0.07110, 0.06940, 0.07250, 0.06540, 0.06410, 0.06440, 0.06660, 0.06410,
 23.1092 +    0.06520, 0.06030, 0.06100, 0.06720, 0.06740, 0.06080, 0.05770, 0.05960,
 23.1093 +    0.05810, 0.06310, 0.05490, 0.05680, 0.05730, 0.05310, 0.05430, 0.05360,
 23.1094 +    0.05730, 0.05200, 0.05650, 0.05010, 0.05380, 0.04670, 0.04920, 0.04880,
 23.1095 +    0.05110, 0.04590, 0.04830, 0.05130, 0.04590, 0.04210, 0.04750, 0.04720,
 23.1096 +    0.04370, 0.04500, 0.04180, 0.04570, 0.03910, 0.04240, 0.03930, 0.03850,
 23.1097 +    0.03990, 0.03780, 0.03810, 0.03910, 0.03950, 0.03440, 0.04030, 0.03310,
 23.1098 +    0.03740, 0.03500, 0.03210, 0.03650, 0.03650, 0.03470, 0.03150, 0.03320,
 23.1099 +    0.03350, 0.03020, 0.03350, 0.03220, 0.02990, 0.03020, 0.03320, 0.03020,
 23.1100 +    0.03240, 0.03130, 0.02870, 0.02870, 0.03040, 0.02940, 0.02680, 0.02930,
 23.1101 +    0.02360, 0.02700, 0.02920, 0.02680, 0.02520, 0.02630, 0.02450, 0.02180,
 23.1102 +    0.02590, 0.02450, 0.02240, 0.02310, 0.02190, 0.02130, 0.02330, 0.01950,
 23.1103 +    0.02550, 0.01890, 0.02170, 0.02170, 0.01890, 0.01740, 0.02040, 0.02120,
 23.1104 +    0.02010, 0.02140, 0.01530, 0.01770, 0.01900, 0.01840, 0.01960, 0.01870,
 23.1105 +    0.01650, 0.01630, 0.01700, 0.01500, 0.01650, 0.01500, 0.01610, 0.01490,
 23.1106 +    0.01600, 0.01430, 0.01670, 0.01640, 0.01370, 0.01550, 0.01490, 0.01200,
 23.1107 +    0.01350, 0.01390, 0.01330, 0.01620, 0.01490, 0.01360, 0.01640, 0.01170,
 23.1108 +    0.01620, 0.01290, 0.01420, 0.01430, 0.01160, 0.01230, 0.01300, 0.01360,
 23.1109 +    0.01190, 0.01490, 0.00910, 0.01080, 0.01200, 0.01270, 0.01280, 0.01260,
 23.1110 +    0.01200, 0.01140, 0.00990, 0.00890, 0.00980, 0.00830, 0.01100, 0.00860,
 23.1111 +    0.01010, 0.00960, 0.01100, 0.01070, 0.00780, 0.01050, 0.00870, 0.00690,
 23.1112 +    0.00880, 0.00900, 0.00930, 0.00780, 0.01080, 0.00920, 0.00660, 0.00830,
 23.1113 +    0.00800, 0.00950, 0.00780, 0.00710, 0.00750 }, { 0.03247, 0.03470, 0.03303,
 23.1114 +    0.03470, 0.03452, 0.03535, 0.04142, 0.03591, 0.04152, 0.03950, 0.03941,
 23.1115 +    0.04398, 0.04461, 0.04407, 0.04597, 0.04831, 0.04956, 0.05402, 0.05419,
 23.1116 +    0.05189, 0.05666, 0.05437, 0.05807, 0.06242, 0.06017, 0.05955, 0.06242,
 23.1117 +    0.06844, 0.06878, 0.06664, 0.06724, 0.06963, 0.07661, 0.07860, 0.07594,
 23.1118 +    0.07811, 0.07644, 0.08165, 0.08427, 0.08468, 0.08476, 0.08711, 0.08149,
 23.1119 +    0.09112, 0.09144, 0.09358, 0.09751, 0.10046, 0.09922, 0.10362, 0.10339,
 23.1120 +    0.10749, 0.10293, 0.11102, 0.11102, 0.11480, 0.11384, 0.11707, 0.11990,
 23.1121 +    0.11982, 0.12069, 0.12054, 0.12305, 0.13132, 0.12652, 0.13351, 0.13690,
 23.1122 +    0.13851, 0.13838, 0.14031, 0.14554, 0.14333, 0.13984, 0.14567, 0.14869,
 23.1123 +    0.15172, 0.15618, 0.15421, 0.15378, 0.15746, 0.16114, 0.16491, 0.16613,
 23.1124 +    0.16752, 0.16826, 0.16815, 0.17059, 0.17416, 0.17388, 0.17547, 0.18167,
 23.1125 +    0.17908, 0.18390, 0.18390, 0.18359, 0.18785, 0.18795, 0.18998, 0.19317,
 23.1126 +    0.19478, 0.19538, 0.20269, 0.19797, 0.20120, 0.20147, 0.20049, 0.20489,
 23.1127 +    0.20773, 0.20895, 0.21182, 0.20875, 0.21151, 0.21544, 0.21488, 0.21807,
 23.1128 +    0.21906, 0.22134, 0.22042, 0.22248, 0.22134, 0.22523, 0.22510, 0.22702,
 23.1129 +    0.22842, 0.22989, 0.23079, 0.23289, 0.23107, 0.23351, 0.23480, 0.23598,
 23.1130 +    0.23300, 0.23572, 0.23622, 0.23893, 0.23918, 0.23990, 0.24103, 0.24161,
 23.1131 +    0.24252, 0.24118, 0.24333, 0.24406, 0.24509, 0.24585, 0.24556, 0.24617,
 23.1132 +    0.24630, 0.24629, 0.24722, 0.24680, 0.24836, 0.24841, 0.24899, 0.24863,
 23.1133 +    0.24943, 0.24922, 0.24963, 0.24962, 0.24979, 0.24993, 0.24983, 0.25000,
 23.1134 +    0.25000, 0.24999, 0.24994, 0.24965, 0.24966, 0.24943, 0.24883, 0.24927,
 23.1135 +    0.24926, 0.24857, 0.24796, 0.24859, 0.24741, 0.24791, 0.24788, 0.24629,
 23.1136 +    0.24628, 0.24632, 0.24562, 0.24606, 0.24525, 0.24384, 0.24309, 0.24313,
 23.1137 +    0.24174, 0.24308, 0.24206, 0.24073, 0.24168, 0.23947, 0.23902, 0.23775,
 23.1138 +    0.23415, 0.23615, 0.23654, 0.23536, 0.23382, 0.23320, 0.23159, 0.23126,
 23.1139 +    0.23172, 0.23062, 0.22848, 0.22863, 0.22871, 0.22711, 0.22548, 0.22644,
 23.1140 +    0.22268, 0.22171, 0.21902, 0.21885, 0.21782, 0.21439, 0.21774, 0.21325,
 23.1141 +    0.21499, 0.21209, 0.21190, 0.21119, 0.20920, 0.20822, 0.20940, 0.20632,
 23.1142 +    0.20611, 0.20040, 0.20527, 0.20182, 0.20480, 0.19824, 0.19815, 0.19321,
 23.1143 +    0.19701, 0.19269, 0.19355, 0.19321, 0.19051, 0.18993, 0.19012, 0.18805,
 23.1144 +    0.18710, 0.18554, 0.18462, 0.18146, 0.18436, 0.17935, 0.17871, 0.17585,
 23.1145 +    0.17476, 0.17661, 0.17327, 0.17672, 0.17121, 0.17333, 0.17585, 0.16723,
 23.1146 +    0.16929, 0.16215, 0.16654, 0.15801, 0.16250, 0.16351, 0.15904, 0.15746,
 23.1147 +    0.15916, 0.15630, 0.15538, 0.15272, 0.15191, 0.15415, 0.14418, 0.14632,
 23.1148 +    0.14327, 0.14741, 0.14612, 0.14734, 0.14477, 0.13944, 0.13844, 0.13697,
 23.1149 +    0.13413, 0.13991, 0.13153, 0.13304, 0.13515, 0.13125, 0.13111, 0.13201,
 23.1150 +    0.12938, 0.12631, 0.12952, 0.12987, 0.12026, 0.13084, 0.11961, 0.11670,
 23.1151 +    0.11917, 0.11597, 0.11772, 0.11531, 0.11743, 0.11946, 0.11288, 0.11362,
 23.1152 +    0.10997, 0.11721, 0.10514, 0.11102, 0.10408, 0.11109, 0.10704, 0.10162,
 23.1153 +    0.10185, 0.10285, 0.10423, 0.09681, 0.09868, 0.10054, 0.09469, 0.09492,
 23.1154 +    0.09326, 0.09239, 0.09215, 0.09128, 0.09342, 0.09191, 0.08597, 0.09112,
 23.1155 +    0.09207, 0.08500, 0.09199, 0.08703, 0.08565, 0.08743, 0.08565, 0.08075,
 23.1156 +    0.08451, 0.08042, 0.08378, 0.07976, 0.07427, 0.07124, 0.07544, 0.07653,
 23.1157 +    0.07276, 0.07494, 0.07410, 0.07310, 0.06997, 0.06844, 0.06673, 0.06895,
 23.1158 +    0.06989, 0.06929, 0.06912, 0.06458, 0.06903, 0.06793, 0.06605, 0.06458,
 23.1159 +    0.06724, 0.06112, 0.05999, 0.06025, 0.06216, 0.05999, 0.06095, 0.05666,
 23.1160 +    0.05728, 0.06268, 0.06286, 0.05710, 0.05437, 0.05605, 0.05472, 0.05912,
 23.1161 +    0.05189, 0.05357, 0.05402, 0.05028, 0.05135, 0.05073, 0.05402, 0.04930,
 23.1162 +    0.05331, 0.04759, 0.05091, 0.04452, 0.04678, 0.04642, 0.04849, 0.04379,
 23.1163 +    0.04597, 0.04867, 0.04379, 0.04033, 0.04524, 0.04497, 0.04179, 0.04297,
 23.1164 +    0.04005, 0.04361, 0.03757, 0.04060, 0.03776, 0.03702, 0.03831, 0.03637,
 23.1165 +    0.03665, 0.03757, 0.03794, 0.03322, 0.03868, 0.03200, 0.03600, 0.03377,
 23.1166 +    0.03107, 0.03517, 0.03517, 0.03350, 0.03051, 0.03210, 0.03238, 0.02929,
 23.1167 +    0.03238, 0.03116, 0.02901, 0.02929, 0.03210, 0.02929, 0.03135, 0.03032,
 23.1168 +    0.02788, 0.02788, 0.02948, 0.02854, 0.02608, 0.02844, 0.02304, 0.02627,
 23.1169 +    0.02835, 0.02608, 0.02457, 0.02561, 0.02390, 0.02133, 0.02523, 0.02390,