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,