LightClass.f90 Source File


Source Code

module LightClass
   use fem
   use EarthClass
   implicit none

   type :: Light_
      character(200)   :: lighttype = "sun"
      real(real64)     :: position(3)
      real(real64)     :: maxPPFD
      real(real64)     :: angles(1:2) = [180.0d0, 90.0d0]

      ! >>> under implementation spectrum
      ! unit: W/m^2/nm
      ! 1 - 2048 nm
      real(real64)     :: spectrum(2048)
      ! <<< under implementation spectrum

      ! [ 方位角(deg.), 太陽高度(deg.)]
      type(Earth_), pointer :: earth
      type(FEMDomain_) :: femdomain
   contains
      procedure, public :: init => initLight
      procedure, public :: turnOff => turnOffLight
      procedure, pass :: addSpectrumLight
      procedure, pass :: addSpectrum_by_single_Light
      generic, public :: addSpectrum => addSpectrumLight, addSpectrum_by_single_Light

      procedure, public :: to_RGB => to_RGB_LightClass
      procedure, public :: setSunLight => setSunLightLight
      procedure, public :: updateSunLight => updateSunLightLight
   end type

   interface to_ppfd
      module procedure to_ppfd_from_spectrum
   end interface to_ppfd
contains

! #################################
   subroutine initLight(obj, config)
      class(Light_), intent(inout) :: obj
      character(*), optional, intent(in) :: config
      type(IO_) :: lightconf, f
      character(200) :: fn, conf, line
      integer(int32), allocatable :: buf(:)
      integer(int32) :: id, rmc, n, node_id, node_id2, elemid, blcount, i, j
      real(real64) :: loc(3)

      ! 節を生成するためのスクリプトを開く
      if (.not. present(config) .or. index(config, ".json") == 0) then
         ! デフォルトの設定を生成
         !print *, "New light-configuration >> lightconfig.json"
         !call lightconf%open("lightconfig.json")
         !write(lightconf%fh,*) '{'
         !write(lightconf%fh,*) '   "type": "light",'
         !write(lightconf%fh,*) '   "source": "sun",'
         !write(lightconf%fh,*) '   "position_x": 0.00,'
         !write(lightconf%fh,*) '   "position_y": 0.00,'
         !write(lightconf%fh,*) '   "position_z": 1.00e+18,'
         !write(lightconf%fh,*) '   "maxPPFD": 1000.00'
         !write(lightconf%fh,*) '}'
         !conf="lightconfig.json"
         !call lightconf%close()
         obj%lighttype = "sun"
         obj%position(1) = 0.0d0
         obj%position(2) = 0.0d0
         obj%position(3) = dble(1.00e+18)
         obj%angles(1) = degrees(atan2(obj%position(2), obj%position(1)))
         obj%angles(2) = degrees(atan2(obj%position(3), norm(obj%position(1:2))))
         ! default :: sunlight
         ! adjusted to 1000 PPFD (micro-mol/m^2/s)
         obj%spectrum = ASTM_G_173_03_ISO_9845_1_1992(Direct=.true.)
         obj%maxPPFD = 1000.0d0
         obj%spectrum = obj%spectrum/to_ppfd(obj%spectrum)*obj%maxPPFD
         return
      else
         conf = config
      end if

      call lightconf%open(conf)
      blcount = 0
      do
         read (lightconf%fh, '(a)') line
         print *, line
         if (adjustl(line) == "{") then
            blcount = 1
            cycle
         end if
         if (adjustl(line) == "}") then
            exit
         end if

         if (blcount == 1) then

            if (index(line, "type") /= 0 .and. index(line, "light") == 0) then
               print *, "ERROR: This config-file is not for light"
               return
            end if

            if (index(line, "source") /= 0) then
               ! 生育ステージ
               rmc = index(line, ",")
               ! カンマがあれば除く
               if (rmc /= 0) then
                  line(rmc:rmc) = " "
               end if
               id = index(line, ":")
               read (line(id + 1:), *) obj%lighttype
            end if

            if (index(line, "position_x") /= 0) then
               ! 種子の長さ
               rmc = index(line, ",")
               ! カンマがあれば除く
               if (rmc /= 0) then
                  line(rmc:rmc) = " "
               end if
               id = index(line, ":")
               read (line(id + 1:), *) obj%position(1)
            end if

            if (index(line, "position_y") /= 0) then
               ! 種子の長さ
               rmc = index(line, ",")
               ! カンマがあれば除く
               if (rmc /= 0) then
                  line(rmc:rmc) = " "
               end if
               id = index(line, ":")
               read (line(id + 1:), *) obj%position(2)
            end if

            if (index(line, "maxPPFD") /= 0) then
               ! 生育ステージ
               rmc = index(line, ",")
               ! カンマがあれば除く
               if (rmc /= 0) then
                  line(rmc:rmc) = " "
               end if
               id = index(line, ":")
               read (line(id + 1:), *) obj%maxPPFD
            end if

            cycle

         end if

      end do
      call lightconf%close()

   end subroutine
! #################################

   subroutine setSunLightLight(obj, earth)
      class(Light_), intent(inout) :: obj
      type(Earth_), target, optional, intent(in) :: earth

      if (associated(obj%earth)) then
         nullify (obj%earth)
      end if

      if (present(earth)) then
         obj%earth => earth
         obj%angles = obj%earth%getSunPosition(Now=.true.)
         return
      end if

      obj%spectrum = ASTM_G_173_03_ISO_9845_1_1992()
      ! not installed any place
      print *, "[ERROR] setSunLightLight >> please pass a place to get sunlight."

   end subroutine
! ################################################################
   subroutine updateSunLightLight(obj, Now, DateTime)
      class(Light_), intent(inout) :: obj
      integer(int32), optional, intent(in) :: DateTime(6) ! Year, Month, Day, Hour, Minute, Second
      logical, optional, intent(in) :: Now

      if (associated(obj%earth)) then
         obj%angles = obj%earth%getSunPosition(Now=Now, DateTime=DateTime)
         return
      end if

      ! not installed any place
      print *, "[ERROR] updateSunLightLight >> please call this%setSunLight(earth)"

   end subroutine
! ################################################################

   function ASTM_G_173_03_ISO_9845_1_1992(Global, Direct, AM0) result(ret)
      ! https://www.pveducation.org/pvcdrom/appendices/standard-solar-spectra
      ! standard solar spectrum
      ! default :: global
      ! Unit: spectral irradiance W/m^2/nm
      logical, optional, intent(in) :: Global, Direct, AM0
      real(real64), allocatable :: ret(:)

      ret = zeros(2048)

      ! default is :: AM1.5 Direct
      if (present(AM0)) then
         if (AM0) then
            ret(119) = dble(0.0000619000)
            ret(120) = dble(0.0005614000)
            ret(121) = dble(0.0049010000)
            ret(122) = dble(0.0011840000)
            ret(123) = dble(0.0000477000)
            ret(124) = dble(0.0000343000)
            ret(125) = dble(0.0000288000)
            ret(126) = dble(0.0000352000)
            ret(127) = dble(0.0000213000)
            ret(128) = dble(0.0000173000)
            ret(129) = dble(0.0000399000)
            ret(130) = dble(0.0001206000)
            ret(131) = dble(0.0000398000)
            ret(132) = dble(0.0000413000)
            ret(133) = dble(0.0001680000)
            ret(134) = dble(0.0000457000)
            ret(135) = dble(0.0000380000)
            ret(136) = dble(0.0000309000)
            ret(137) = dble(0.0000292000)
            ret(138) = dble(0.0000397000)
            ret(139) = dble(0.0000756000)
            ret(140) = dble(0.0000608000)
            ret(141) = dble(0.0000421000)
            ret(142) = dble(0.0000468000)
            ret(143) = dble(0.0000511000)
            ret(144) = dble(0.0000509000)
            ret(145) = dble(0.0000554000)
            ret(146) = dble(0.0000709000)
            ret(147) = dble(0.0000849000)
            ret(148) = dble(0.0000820000)
            ret(149) = dble(0.0000796000)
            ret(150) = dble(0.0000870000)
            ret(151) = dble(0.0000927000)
            ret(152) = dble(0.0001163000)
            ret(153) = dble(0.0001299000)
            ret(154) = dble(0.0002059000)
            ret(155) = dble(0.0002144000)
            ret(156) = dble(0.0001847000)
            ret(157) = dble(0.0001717000)
            ret(158) = dble(0.0001675000)
            ret(159) = dble(0.0001754000)
            ret(160) = dble(0.0001934000)
            ret(161) = dble(0.0002228000)
            ret(162) = dble(0.0002519000)
            ret(163) = dble(0.0002841000)
            ret(164) = dble(0.0002973000)
            ret(165) = dble(0.0004302000)
            ret(166) = dble(0.0003989000)
            ret(167) = dble(0.0003875000)
            ret(168) = dble(0.0004556000)
            ret(169) = dble(0.0005877000)
            ret(170) = dble(0.0006616000)
            ret(171) = dble(0.0006880000)
            ret(172) = dble(0.0007252000)
            ret(173) = dble(0.0007645000)
            ret(174) = dble(0.0009067000)
            ret(175) = dble(0.0010790000)
            ret(176) = dble(0.0012200000)
            ret(177) = dble(0.0014030000)
            ret(178) = dble(0.0015380000)
            ret(179) = dble(0.0015760000)
            ret(180) = dble(0.0018310000)
            ret(181) = dble(0.0022330000)
            ret(182) = dble(0.0022430000)
            ret(183) = dble(0.0022440000)
            ret(184) = dble(0.0020660000)
            ret(185) = dble(0.0023110000)
            ret(186) = dble(0.0027000000)
            ret(187) = dble(0.0030090000)
            ret(188) = dble(0.0032910000)
            ret(189) = dble(0.0035690000)
            ret(190) = dble(0.0037640000)
            ret(191) = dble(0.0041650000)
            ret(192) = dble(0.0041130000)
            ret(193) = dble(0.0038080000)
            ret(194) = dble(0.0052100000)
            ret(195) = dble(0.0054270000)
            ret(196) = dble(0.0060080000)
            ret(197) = dble(0.0061910000)
            ret(198) = dble(0.0061870000)
            ret(199) = dble(0.0066640000)
            ret(200) = dble(0.0073260000)
            ret(201) = dble(0.0080230000)
            ret(202) = dble(0.0082610000)
            ret(203) = dble(0.0092170000)
            ret(204) = dble(0.0102500000)
            ret(205) = dble(0.0105400000)
            ret(206) = dble(0.0110800000)
            ret(207) = dble(0.0126500000)
            ret(208) = dble(0.0150500000)
            ret(209) = dble(0.0213800000)
            ret(210) = dble(0.0279200000)
            ret(211) = dble(0.0335400000)
            ret(212) = dble(0.0313000000)
            ret(213) = dble(0.0331500000)
            ret(214) = dble(0.0400300000)
            ret(215) = dble(0.0361500000)
            ret(216) = dble(0.0322700000)
            ret(217) = dble(0.0352900000)
            ret(218) = dble(0.0443700000)
            ret(219) = dble(0.0469200000)
            ret(220) = dble(0.0473300000)
            ret(221) = dble(0.0395800000)
            ret(222) = dble(0.0496500000)
            ret(223) = dble(0.0630100000)
            ret(224) = dble(0.0589700000)
            ret(225) = dble(0.0522900000)
            ret(226) = dble(0.0394000000)
            ret(227) = dble(0.0399200000)
            ret(228) = dble(0.0519500000)
            ret(229) = dble(0.0477100000)
            ret(230) = dble(0.0521200000)
            ret(231) = dble(0.0509700000)
            ret(232) = dble(0.0532600000)
            ret(233) = dble(0.0447400000)
            ret(234) = dble(0.0389700000)
            ret(235) = dble(0.0514200000)
            ret(236) = dble(0.0485900000)
            ret(237) = dble(0.0484400000)
            ret(238) = dble(0.0419600000)
            ret(239) = dble(0.0441200000)
            ret(240) = dble(0.0395600000)
            ret(241) = dble(0.0514800000)
            ret(242) = dble(0.0706000000)
            ret(243) = dble(0.0665300000)
            ret(244) = dble(0.0609700000)
            ret(245) = dble(0.0493900000)
            ret(246) = dble(0.0504000000)
            ret(247) = dble(0.0555000000)
            ret(248) = dble(0.0456500000)
            ret(249) = dble(0.0563800000)
            ret(250) = dble(0.0601000000)
            ret(251) = dble(0.0460100000)
            ret(252) = dble(0.0415500000)
            ret(253) = dble(0.0515500000)
            ret(254) = dble(0.0595700000)
            ret(255) = dble(0.0793000000)
            ret(256) = dble(0.1018000000)
            ret(257) = dble(0.1254000000)
            ret(258) = dble(0.1251000000)
            ret(259) = dble(0.1040000000)
            ret(260) = dble(0.0855100000)
            ret(261) = dble(0.0898000000)
            ret(262) = dble(0.1036000000)
            ret(263) = dble(0.1658000000)
            ret(264) = dble(0.2497000000)
            ret(265) = dble(0.2527000000)
            ret(266) = dble(0.2494000000)
            ret(267) = dble(0.2508000000)
            ret(268) = dble(0.2438000000)
            ret(269) = dble(0.2389000000)
            ret(270) = dble(0.2673000000)
            ret(271) = dble(0.2244000000)
            ret(272) = dble(0.1974000000)
            ret(273) = dble(0.1965000000)
            ret(274) = dble(0.1326000000)
            ret(275) = dble(0.1751000000)
            ret(276) = dble(0.2428000000)
            ret(277) = dble(0.2338000000)
            ret(278) = dble(0.1593000000)
            ret(279) = dble(0.0855500000)
            ret(280) = dble(0.0946300000)
            ret(281) = dble(0.2083000000)
            ret(282) = dble(0.2941000000)
            ret(283) = dble(0.3135000000)
            ret(284) = dble(0.2353000000)
            ret(285) = dble(0.1631000000)
            ret(286) = dble(0.3227000000)
            ret(287) = dble(0.3363000000)
            ret(288) = dble(0.3222000000)
            ret(289) = dble(0.4727000000)
            ret(290) = dble(0.6013000000)
            ret(291) = dble(0.5808000000)
            ret(292) = dble(0.5219000000)
            ret(293) = dble(0.5355000000)
            ret(294) = dble(0.5088000000)
            ret(295) = dble(0.5532000000)
            ret(296) = dble(0.5096000000)
            ret(297) = dble(0.5073000000)
            ret(298) = dble(0.4655000000)
            ret(299) = dble(0.4840000000)
            ret(300) = dble(0.4200000000)
            ret(301) = dble(0.4555000000)
            ret(302) = dble(0.4890000000)
            ret(303) = dble(0.6206000000)
            ret(304) = dble(0.6025000000)
            ret(305) = dble(0.5948000000)
            ret(306) = dble(0.5557000000)
            ret(307) = dble(0.6150000000)
            ret(308) = dble(0.6114000000)
            ret(309) = dble(0.4965000000)
            ret(310) = dble(0.6224000000)
            ret(311) = dble(0.7292000000)
            ret(312) = dble(0.6559000000)
            ret(313) = dble(0.6999000000)
            ret(314) = dble(0.6629000000)
            ret(315) = dble(0.6330000000)
            ret(316) = dble(0.6332000000)
            ret(317) = dble(0.7739000000)
            ret(318) = dble(0.6649000000)
            ret(319) = dble(0.7105000000)
            ret(320) = dble(0.8051000000)
            ret(321) = dble(0.6995000000)
            ret(322) = dble(0.6886000000)
            ret(323) = dble(0.6613000000)
            ret(324) = dble(0.7608000000)
            ret(325) = dble(0.8758000000)
            ret(326) = dble(0.9795000000)
            ret(327) = dble(0.9527000000)
            ret(328) = dble(0.9176000000)
            ret(329) = dble(1.0610000000)
            ret(330) = dble(1.0160000000)
            ret(331) = dble(0.9657000000)
            ret(332) = dble(0.9549000000)
            ret(333) = dble(0.9216000000)
            ret(334) = dble(0.9589000000)
            ret(335) = dble(0.9434000000)
            ret(336) = dble(0.8095000000)
            ret(337) = dble(0.8418000000)
            ret(338) = dble(0.9215000000)
            ret(339) = dble(0.9581000000)
            ret(340) = dble(1.0070000000)
            ret(341) = dble(0.9238000000)
            ret(342) = dble(0.9930000000)
            ret(343) = dble(0.9506000000)
            ret(344) = dble(0.7957000000)
            ret(345) = dble(0.9392000000)
            ret(346) = dble(0.9264000000)
            ret(347) = dble(0.9017000000)
            ret(348) = dble(0.8972000000)
            ret(349) = dble(0.8898000000)
            ret(350) = dble(1.0500000000)
            ret(351) = dble(0.9795000000)
            ret(352) = dble(0.9079000000)
            ret(353) = dble(1.0330000000)
            ret(354) = dble(1.1110000000)
            ret(355) = dble(1.0450000000)
            ret(356) = dble(0.9123000000)
            ret(357) = dble(0.7960000000)
            ret(358) = dble(0.6936000000)
            ret(359) = dble(0.9911000000)
            ret(360) = dble(0.9708000000)
            ret(361) = dble(0.8781000000)
            ret(362) = dble(0.9978000000)
            ret(363) = dble(0.9969000000)
            ret(364) = dble(1.0130000000)
            ret(365) = dble(1.1520000000)
            ret(366) = dble(1.2330000000)
            ret(367) = dble(1.1800000000)
            ret(368) = dble(1.1010000000)
            ret(369) = dble(1.2260000000)
            ret(370) = dble(1.1390000000)
            ret(371) = dble(1.1750000000)
            ret(372) = dble(1.0540000000)
            ret(373) = dble(0.9202000000)
            ret(374) = dble(0.9004000000)
            ret(375) = dble(1.0620000000)
            ret(376) = dble(1.0850000000)
            ret(377) = dble(1.2820000000)
            ret(378) = dble(1.3270000000)
            ret(379) = dble(1.0660000000)
            ret(380) = dble(1.2020000000)
            ret(381) = dble(1.0820000000)
            ret(382) = dble(0.7913000000)
            ret(383) = dble(0.6841000000)
            ret(384) = dble(0.9597000000)
            ret(385) = dble(1.0080000000)
            ret(386) = dble(1.0070000000)
            ret(387) = dble(1.0040000000)
            ret(388) = dble(0.9843000000)
            ret(389) = dble(1.1740000000)
            ret(390) = dble(1.2470000000)
            ret(391) = dble(1.3420000000)
            ret(392) = dble(1.0190000000)
            ret(393) = dble(0.5823000000)
            ret(394) = dble(1.0260000000)
            ret(395) = dble(1.3140000000)
            ret(396) = dble(0.8545000000)
            ret(397) = dble(0.9288000000)
            ret(398) = dble(1.5220000000)
            ret(399) = dble(1.6630000000)
            ret(400) = dble(1.6820000000)
            ret(401) = dble(1.7460000000)
            ret(402) = dble(1.7590000000)
            ret(403) = dble(1.6840000000)
            ret(404) = dble(1.6740000000)
            ret(405) = dble(1.6670000000)
            ret(406) = dble(1.5890000000)
            ret(407) = dble(1.6280000000)
            ret(408) = dble(1.7350000000)
            ret(409) = dble(1.7150000000)
            ret(410) = dble(1.5320000000)
            ret(411) = dble(1.8170000000)
            ret(412) = dble(1.7890000000)
            ret(413) = dble(1.7560000000)
            ret(414) = dble(1.7370000000)
            ret(415) = dble(1.7340000000)
            ret(416) = dble(1.8420000000)
            ret(417) = dble(1.6650000000)
            ret(418) = dble(1.6840000000)
            ret(419) = dble(1.7010000000)
            ret(420) = dble(1.7570000000)
            ret(421) = dble(1.7970000000)
            ret(422) = dble(1.5820000000)
            ret(423) = dble(1.7110000000)
            ret(424) = dble(1.7670000000)
            ret(425) = dble(1.6950000000)
            ret(426) = dble(1.6980000000)
            ret(427) = dble(1.5690000000)
            ret(428) = dble(1.5870000000)
            ret(429) = dble(1.4750000000)
            ret(430) = dble(1.1350000000)
            ret(431) = dble(1.6860000000)
            ret(432) = dble(1.6460000000)
            ret(433) = dble(1.7310000000)
            ret(434) = dble(1.6700000000)
            ret(435) = dble(1.7230000000)
            ret(436) = dble(1.9290000000)
            ret(437) = dble(1.8060000000)
            ret(438) = dble(1.5670000000)
            ret(439) = dble(1.8250000000)
            ret(440) = dble(1.7130000000)
            ret(441) = dble(1.9310000000)
            ret(442) = dble(1.9800000000)
            ret(443) = dble(1.9090000000)
            ret(444) = dble(1.9730000000)
            ret(445) = dble(1.8210000000)
            ret(446) = dble(1.8910000000)
            ret(447) = dble(2.0770000000)
            ret(448) = dble(1.9730000000)
            ret(449) = dble(2.0270000000)
            ret(450) = dble(2.1440000000)
            ret(451) = dble(2.1090000000)
            ret(452) = dble(1.9410000000)
            ret(453) = dble(1.9700000000)
            ret(454) = dble(1.9790000000)
            ret(455) = dble(2.0340000000)
            ret(456) = dble(2.0770000000)
            ret(457) = dble(2.1000000000)
            ret(458) = dble(1.9710000000)
            ret(459) = dble(2.0090000000)
            ret(460) = dble(2.0400000000)
            ret(461) = dble(2.0550000000)
            ret(462) = dble(2.1040000000)
            ret(463) = dble(2.0400000000)
            ret(464) = dble(1.9760000000)
            ret(465) = dble(2.0420000000)
            ret(466) = dble(1.9210000000)
            ret(467) = dble(2.0150000000)
            ret(468) = dble(1.9940000000)
            ret(469) = dble(1.9900000000)
            ret(470) = dble(1.8770000000)
            ret(471) = dble(2.0180000000)
            ret(472) = dble(2.0410000000)
            ret(473) = dble(1.9910000000)
            ret(474) = dble(2.0510000000)
            ret(475) = dble(2.0160000000)
            ret(476) = dble(1.9560000000)
            ret(477) = dble(2.0750000000)
            ret(478) = dble(2.0090000000)
            ret(479) = dble(2.0760000000)
            ret(480) = dble(2.0350000000)
            ret(481) = dble(2.0900000000)
            ret(482) = dble(2.0230000000)
            ret(483) = dble(2.0190000000)
            ret(484) = dble(1.9690000000)
            ret(485) = dble(1.8300000000)
            ret(486) = dble(1.6250000000)
            ret(487) = dble(1.8300000000)
            ret(488) = dble(1.9140000000)
            ret(489) = dble(1.9600000000)
            ret(490) = dble(2.0070000000)
            ret(491) = dble(1.8960000000)
            ret(492) = dble(1.8960000000)
            ret(493) = dble(1.8880000000)
            ret(494) = dble(2.0580000000)
            ret(495) = dble(1.9260000000)
            ret(496) = dble(2.0170000000)
            ret(497) = dble(2.0180000000)
            ret(498) = dble(1.8660000000)
            ret(499) = dble(1.9700000000)
            ret(500) = dble(1.8570000000)
            ret(501) = dble(1.8120000000)
            ret(502) = dble(1.8940000000)
            ret(503) = dble(1.9340000000)
            ret(504) = dble(1.8690000000)
            ret(505) = dble(1.9930000000)
            ret(506) = dble(1.9610000000)
            ret(507) = dble(1.9060000000)
            ret(508) = dble(1.9190000000)
            ret(509) = dble(1.9160000000)
            ret(510) = dble(1.9470000000)
            ret(511) = dble(1.9970000000)
            ret(512) = dble(1.8670000000)
            ret(513) = dble(1.8610000000)
            ret(514) = dble(1.8740000000)
            ret(515) = dble(1.9000000000)
            ret(516) = dble(1.6690000000)
            ret(517) = dble(1.7260000000)
            ret(518) = dble(1.6540000000)
            ret(519) = dble(1.8280000000)
            ret(520) = dble(1.8310000000)
            ret(521) = dble(1.9060000000)
            ret(522) = dble(1.8230000000)
            ret(523) = dble(1.8940000000)
            ret(524) = dble(1.9580000000)
            ret(525) = dble(1.9300000000)
            ret(526) = dble(1.6740000000)
            ret(527) = dble(1.8280000000)
            ret(528) = dble(1.8970000000)
            ret(529) = dble(1.9180000000)
            ret(530) = dble(1.9520000000)
            ret(531) = dble(1.9630000000)
            ret(532) = dble(1.7700000000)
            ret(533) = dble(1.9230000000)
            ret(534) = dble(1.8580000000)
            ret(535) = dble(1.9900000000)
            ret(536) = dble(1.8710000000)
            ret(537) = dble(1.8820000000)
            ret(538) = dble(1.9040000000)
            ret(539) = dble(1.8320000000)
            ret(540) = dble(1.7690000000)
            ret(541) = dble(1.8810000000)
            ret(542) = dble(1.8250000000)
            ret(543) = dble(1.8790000000)
            ret(544) = dble(1.8790000000)
            ret(545) = dble(1.9010000000)
            ret(546) = dble(1.8790000000)
            ret(547) = dble(1.8330000000)
            ret(548) = dble(1.8630000000)
            ret(549) = dble(1.8950000000)
            ret(550) = dble(1.8620000000)
            ret(551) = dble(1.8710000000)
            ret(552) = dble(1.8460000000)
            ret(553) = dble(1.8820000000)
            ret(554) = dble(1.8980000000)
            ret(555) = dble(1.8970000000)
            ret(556) = dble(1.8210000000)
            ret(557) = dble(1.8460000000)
            ret(558) = dble(1.7870000000)
            ret(559) = dble(1.8080000000)
            ret(560) = dble(1.8430000000)
            ret(561) = dble(1.8240000000)
            ret(562) = dble(1.8500000000)
            ret(563) = dble(1.8610000000)
            ret(564) = dble(1.8540000000)
            ret(565) = dble(1.7980000000)
            ret(566) = dble(1.8290000000)
            ret(567) = dble(1.8870000000)
            ret(568) = dble(1.8100000000)
            ret(569) = dble(1.8600000000)
            ret(570) = dble(1.7690000000)
            ret(571) = dble(1.8230000000)
            ret(572) = dble(1.8920000000)
            ret(573) = dble(1.8760000000)
            ret(574) = dble(1.8670000000)
            ret(575) = dble(1.8300000000)
            ret(576) = dble(1.8460000000)
            ret(577) = dble(1.8570000000)
            ret(578) = dble(1.7830000000)
            ret(579) = dble(1.8280000000)
            ret(580) = dble(1.8380000000)
            ret(581) = dble(1.8530000000)
            ret(582) = dble(1.8730000000)
            ret(583) = dble(1.8570000000)
            ret(584) = dble(1.8600000000)
            ret(585) = dble(1.7830000000)
            ret(586) = dble(1.8300000000)
            ret(587) = dble(1.8480000000)
            ret(588) = dble(1.7500000000)
            ret(589) = dble(1.6120000000)
            ret(590) = dble(1.8130000000)
            ret(591) = dble(1.7870000000)
            ret(592) = dble(1.8080000000)
            ret(593) = dble(1.7960000000)
            ret(594) = dble(1.7730000000)
            ret(595) = dble(1.7820000000)
            ret(596) = dble(1.8050000000)
            ret(597) = dble(1.7800000000)
            ret(598) = dble(1.7570000000)
            ret(599) = dble(1.7740000000)
            ret(600) = dble(1.7460000000)
            ret(601) = dble(1.7510000000)
            ret(602) = dble(1.7190000000)
            ret(603) = dble(1.7870000000)
            ret(604) = dble(1.7760000000)
            ret(605) = dble(1.7630000000)
            ret(606) = dble(1.7590000000)
            ret(607) = dble(1.7570000000)
            ret(608) = dble(1.7430000000)
            ret(609) = dble(1.7440000000)
            ret(610) = dble(1.7030000000)
            ret(611) = dble(1.7460000000)
            ret(612) = dble(1.7050000000)
            ret(613) = dble(1.6830000000)
            ret(614) = dble(1.7130000000)
            ret(615) = dble(1.7130000000)
            ret(616) = dble(1.6090000000)
            ret(617) = dble(1.7070000000)
            ret(618) = dble(1.7240000000)
            ret(619) = dble(1.7070000000)
            ret(620) = dble(1.7340000000)
            ret(621) = dble(1.6900000000)
            ret(622) = dble(1.7130000000)
            ret(623) = dble(1.6660000000)
            ret(624) = dble(1.6560000000)
            ret(625) = dble(1.6320000000)
            ret(626) = dble(1.6970000000)
            ret(627) = dble(1.6970000000)
            ret(628) = dble(1.6970000000)
            ret(629) = dble(1.6770000000)
            ret(631) = dble(1.6390000000)
            ret(633) = dble(1.6510000000)
            ret(635) = dble(1.6560000000)
            ret(637) = dble(1.6540000000)
            ret(639) = dble(1.6510000000)
            ret(641) = dble(1.6140000000)
            ret(643) = dble(1.6210000000)
            ret(645) = dble(1.6270000000)
            ret(647) = dble(1.6030000000)
            ret(649) = dble(1.5580000000)
            ret(651) = dble(1.6060000000)
            ret(653) = dble(1.5990000000)
            ret(655) = dble(1.5320000000)
            ret(657) = dble(1.3840000000)
            ret(659) = dble(1.5490000000)
            ret(661) = dble(1.5710000000)
            ret(663) = dble(1.5550000000)
            ret(665) = dble(1.5600000000)
            ret(667) = dble(1.5350000000)
            ret(669) = dble(1.5460000000)
            ret(671) = dble(1.5160000000)
            ret(673) = dble(1.5210000000)
            ret(675) = dble(1.5100000000)
            ret(677) = dble(1.5080000000)
            ret(679) = dble(1.4980000000)
            ret(681) = dble(1.4920000000)
            ret(683) = dble(1.4790000000)
            ret(685) = dble(1.4550000000)
            ret(687) = dble(1.4670000000)
            ret(689) = dble(1.4610000000)
            ret(691) = dble(1.4480000000)
            ret(693) = dble(1.4480000000)
            ret(695) = dble(1.4360000000)
            ret(697) = dble(1.4160000000)
            ret(699) = dble(1.4250000000)
            ret(701) = dble(1.3860000000)
            ret(703) = dble(1.3880000000)
            ret(705) = dble(1.4150000000)
            ret(707) = dble(1.4000000000)
            ret(709) = dble(1.3840000000)
            ret(711) = dble(1.3850000000)
            ret(713) = dble(1.3730000000)
            ret(715) = dble(1.3660000000)
            ret(717) = dble(1.3540000000)
            ret(719) = dble(1.3280000000)
            ret(721) = dble(1.3310000000)
            ret(723) = dble(1.3480000000)
            ret(725) = dble(1.3500000000)
            ret(727) = dble(1.3460000000)
            ret(729) = dble(1.3190000000)
            ret(731) = dble(1.3260000000)
            ret(733) = dble(1.3180000000)
            ret(735) = dble(1.3090000000)
            ret(737) = dble(1.3070000000)
            ret(739) = dble(1.2780000000)
            ret(741) = dble(1.2580000000)
            ret(743) = dble(1.2860000000)
            ret(745) = dble(1.2790000000)
            ret(747) = dble(1.2830000000)
            ret(749) = dble(1.2700000000)
            ret(751) = dble(1.2620000000)
            ret(753) = dble(1.2590000000)
            ret(755) = dble(1.2550000000)
            ret(757) = dble(1.2480000000)
            ret(759) = dble(1.2400000000)
            ret(761) = dble(1.2370000000)
            ret(763) = dble(1.2410000000)
            ret(765) = dble(1.2210000000)
            ret(767) = dble(1.1850000000)
            ret(769) = dble(1.2030000000)
            ret(771) = dble(1.2040000000)
            ret(773) = dble(1.2080000000)
            ret(775) = dble(1.1880000000)
            ret(777) = dble(1.1960000000)
            ret(779) = dble(1.1870000000)
            ret(781) = dble(1.1870000000)
            ret(783) = dble(1.1760000000)
            ret(785) = dble(1.1800000000)
            ret(787) = dble(1.1770000000)
            ret(789) = dble(1.1740000000)
            ret(791) = dble(1.1580000000)
            ret(793) = dble(1.1430000000)
            ret(795) = dble(1.1340000000)
            ret(797) = dble(1.1520000000)
            ret(799) = dble(1.1350000000)
            ret(801) = dble(1.1420000000)
            ret(803) = dble(1.1290000000)
            ret(805) = dble(1.1150000000)
            ret(807) = dble(1.1200000000)
            ret(809) = dble(1.0950000000)
            ret(811) = dble(1.1140000000)
            ret(813) = dble(1.1150000000)
            ret(815) = dble(1.1070000000)
            ret(817) = dble(1.1040000000)
            ret(819) = dble(1.0630000000)
            ret(821) = dble(1.0800000000)
            ret(823) = dble(1.0730000000)
            ret(825) = dble(1.0750000000)
            ret(826) = dble(1.0800000000)
            ret(828) = dble(1.0810000000)
            ret(830) = dble(1.0630000000)
            ret(832) = dble(1.0510000000)
            ret(834) = dble(1.0410000000)
            ret(836) = dble(1.0520000000)
            ret(838) = dble(1.0440000000)
            ret(840) = dble(1.0400000000)
            ret(842) = dble(1.0360000000)
            ret(844) = dble(1.0240000000)
            ret(846) = dble(1.0280000000)
            ret(848) = dble(1.0230000000)
            ret(850) = dble(0.9660000000)
            ret(852) = dble(0.9961000000)
            ret(854) = dble(0.8780000000)
            ret(856) = dble(0.9755000000)
            ret(858) = dble(1.0050000000)
            ret(860) = dble(0.9969000000)
            ret(862) = dble(0.9949000000)
            ret(864) = dble(0.9993000000)
            ret(866) = dble(0.8862000000)
            ret(868) = dble(0.9395000000)
            ret(870) = dble(0.9747000000)
            ret(872) = dble(0.9833000000)
            ret(874) = dble(0.9713000000)
            ret(876) = dble(0.9640000000)
            ret(878) = dble(0.9749000000)
            ret(880) = dble(0.9554000000)
            ret(882) = dble(0.9511000000)
            ret(884) = dble(0.9579000000)
            ret(886) = dble(0.9383000000)
            ret(888) = dble(0.9443000000)
            ret(890) = dble(0.9530000000)
            ret(892) = dble(0.9394000000)
            ret(894) = dble(0.9332000000)
            ret(896) = dble(0.9387000000)
            ret(898) = dble(0.9339000000)
            ret(900) = dble(0.9158000000)
            ret(902) = dble(0.8916000000)
            ret(904) = dble(0.9285000000)
            ret(906) = dble(0.9176000000)
            ret(908) = dble(0.9025000000)
            ret(910) = dble(0.8916000000)
            ret(912) = dble(0.8967000000)
            ret(914) = dble(0.9071000000)
            ret(916) = dble(0.9004000000)
            ret(918) = dble(0.8951000000)
            ret(920) = dble(0.8908000000)
            ret(922) = dble(0.8630000000)
            ret(924) = dble(0.8585000000)
            ret(926) = dble(0.8612000000)
            ret(928) = dble(0.8769000000)
            ret(930) = dble(0.8677000000)
            ret(932) = dble(0.8651000000)
            ret(934) = dble(0.8641000000)
            ret(936) = dble(0.8547000000)
            ret(938) = dble(0.8580000000)
            ret(940) = dble(0.8438000000)
            ret(942) = dble(0.8250000000)
            ret(944) = dble(0.8324000000)
            ret(946) = dble(0.8375000000)
            ret(948) = dble(0.8407000000)
            ret(950) = dble(0.8369000000)
            ret(952) = dble(0.8317000000)
            ret(954) = dble(0.8080000000)
            ret(956) = dble(0.8082000000)
            ret(958) = dble(0.8188000000)
            ret(960) = dble(0.8151000000)
            ret(962) = dble(0.8089000000)
            ret(964) = dble(0.8013000000)
            ret(966) = dble(0.7947000000)
            ret(968) = dble(0.7969000000)
            ret(970) = dble(0.7959000000)
            ret(972) = dble(0.7936000000)
            ret(974) = dble(0.7815000000)
            ret(976) = dble(0.7825000000)
            ret(978) = dble(0.7779000000)
            ret(980) = dble(0.7746000000)
            ret(982) = dble(0.7764000000)
            ret(984) = dble(0.7698000000)
            ret(986) = dble(0.7661000000)
            ret(988) = dble(0.7615000000)
            ret(990) = dble(0.7541000000)
            ret(992) = dble(0.7567000000)
            ret(994) = dble(0.7556000000)
            ret(996) = dble(0.7525000000)
            ret(998) = dble(0.7510000000)
            ret(1000) = dble(0.7479000000)
            ret(1002) = dble(0.7469000000)
            ret(1004) = dble(0.7261000000)
            ret(1006) = dble(0.7136000000)
            ret(1008) = dble(0.7335000000)
            ret(1010) = dble(0.7313000000)
            ret(1012) = dble(0.7262000000)
            ret(1014) = dble(0.7210000000)
            ret(1016) = dble(0.7139000000)
            ret(1018) = dble(0.7107000000)
            ret(1020) = dble(0.7041000000)
            ret(1022) = dble(0.7021000000)
            ret(1024) = dble(0.7054000000)
            ret(1026) = dble(0.7027000000)
            ret(1028) = dble(0.6989000000)
            ret(1030) = dble(0.6937000000)
            ret(1032) = dble(0.6905000000)
            ret(1034) = dble(0.6817000000)
            ret(1036) = dble(0.6840000000)
            ret(1038) = dble(0.6772000000)
            ret(1040) = dble(0.6761000000)
            ret(1042) = dble(0.6746000000)
            ret(1044) = dble(0.6714000000)
            ret(1046) = dble(0.6600000000)
            ret(1048) = dble(0.6644000000)
            ret(1050) = dble(0.6622000000)
            ret(1052) = dble(0.6586000000)
            ret(1054) = dble(0.6549000000)
            ret(1056) = dble(0.6557000000)
            ret(1058) = dble(0.6451000000)
            ret(1060) = dble(0.6415000000)
            ret(1062) = dble(0.6438000000)
            ret(1064) = dble(0.6459000000)
            ret(1066) = dble(0.6395000000)
            ret(1068) = dble(0.6317000000)
            ret(1070) = dble(0.6241000000)
            ret(1072) = dble(0.6326000000)
            ret(1074) = dble(0.6276000000)
            ret(1076) = dble(0.6280000000)
            ret(1078) = dble(0.6272000000)
            ret(1080) = dble(0.6247000000)
            ret(1082) = dble(0.6099000000)
            ret(1084) = dble(0.6180000000)
            ret(1086) = dble(0.6208000000)
            ret(1088) = dble(0.6103000000)
            ret(1090) = dble(0.6199000000)
            ret(1092) = dble(0.6159000000)
            ret(1094) = dble(0.5849000000)
            ret(1096) = dble(0.5983000000)
            ret(1098) = dble(0.5961000000)
            ret(1100) = dble(0.6042000000)
            ret(1102) = dble(0.5932000000)
            ret(1104) = dble(0.5974000000)
            ret(1106) = dble(0.5945000000)
            ret(1108) = dble(0.5916000000)
            ret(1110) = dble(0.5906000000)
            ret(1112) = dble(0.5843000000)
            ret(1114) = dble(0.5844000000)
            ret(1116) = dble(0.5831000000)
            ret(1118) = dble(0.5815000000)
            ret(1120) = dble(0.5741000000)
            ret(1122) = dble(0.5796000000)
            ret(1124) = dble(0.5769000000)
            ret(1126) = dble(0.5655000000)
            ret(1128) = dble(0.5700000000)
            ret(1130) = dble(0.5653000000)
            ret(1132) = dble(0.5678000000)
            ret(1134) = dble(0.5638000000)
            ret(1136) = dble(0.5658000000)
            ret(1138) = dble(0.5569000000)
            ret(1140) = dble(0.5530000000)
            ret(1142) = dble(0.5531000000)
            ret(1144) = dble(0.5514000000)
            ret(1146) = dble(0.5548000000)
            ret(1148) = dble(0.5525000000)
            ret(1150) = dble(0.5489000000)
            ret(1152) = dble(0.5458000000)
            ret(1154) = dble(0.5479000000)
            ret(1156) = dble(0.5455000000)
            ret(1158) = dble(0.5435000000)
            ret(1160) = dble(0.5320000000)
            ret(1162) = dble(0.5325000000)
            ret(1164) = dble(0.5332000000)
            ret(1166) = dble(0.5303000000)
            ret(1168) = dble(0.5312000000)
            ret(1170) = dble(0.5276000000)
            ret(1172) = dble(0.5315000000)
            ret(1174) = dble(0.5273000000)
            ret(1176) = dble(0.5184000000)
            ret(1178) = dble(0.5190000000)
            ret(1180) = dble(0.5239000000)
            ret(1182) = dble(0.5159000000)
            ret(1184) = dble(0.5103000000)
            ret(1186) = dble(0.5187000000)
            ret(1188) = dble(0.5075000000)
            ret(1190) = dble(0.5085000000)
            ret(1192) = dble(0.5161000000)
            ret(1194) = dble(0.5145000000)
            ret(1196) = dble(0.5084000000)
            ret(1198) = dble(0.4943000000)
            ret(1200) = dble(0.5003000000)
            ret(1202) = dble(0.5068000000)
            ret(1204) = dble(0.4948000000)
            ret(1206) = dble(0.5039000000)
            ret(1208) = dble(0.4890000000)
            ret(1210) = dble(0.4882000000)
            ret(1212) = dble(0.4933000000)
            ret(1214) = dble(0.4942000000)
            ret(1216) = dble(0.4930000000)
            ret(1218) = dble(0.4897000000)
            ret(1220) = dble(0.4875000000)
            ret(1222) = dble(0.4854000000)
            ret(1224) = dble(0.4846000000)
            ret(1226) = dble(0.4817000000)
            ret(1228) = dble(0.4771000000)
            ret(1230) = dble(0.4792000000)
            ret(1232) = dble(0.4750000000)
            ret(1234) = dble(0.4729000000)
            ret(1236) = dble(0.4719000000)
            ret(1238) = dble(0.4703000000)
            ret(1240) = dble(0.4653000000)
            ret(1242) = dble(0.4642000000)
            ret(1244) = dble(0.4619000000)
            ret(1246) = dble(0.4635000000)
            ret(1248) = dble(0.4633000000)
            ret(1250) = dble(0.4624000000)
            ret(1252) = dble(0.4571000000)
            ret(1254) = dble(0.4574000000)
            ret(1256) = dble(0.4551000000)
            ret(1258) = dble(0.4533000000)
            ret(1260) = dble(0.4530000000)
            ret(1262) = dble(0.4497000000)
            ret(1264) = dble(0.4478000000)
            ret(1266) = dble(0.4467000000)
            ret(1268) = dble(0.4417000000)
            ret(1270) = dble(0.4453000000)
            ret(1272) = dble(0.4452000000)
            ret(1274) = dble(0.4431000000)
            ret(1276) = dble(0.4451000000)
            ret(1278) = dble(0.4440000000)
            ret(1280) = dble(0.4356000000)
            ret(1282) = dble(0.4014000000)
            ret(1284) = dble(0.4259000000)
            ret(1286) = dble(0.4328000000)
            ret(1288) = dble(0.4314000000)
            ret(1290) = dble(0.4255000000)
            ret(1292) = dble(0.4254000000)
            ret(1294) = dble(0.4223000000)
            ret(1296) = dble(0.4224000000)
            ret(1298) = dble(0.4184000000)
            ret(1300) = dble(0.4186000000)
            ret(1302) = dble(0.4139000000)
            ret(1304) = dble(0.4111000000)
            ret(1306) = dble(0.4136000000)
            ret(1308) = dble(0.4123000000)
            ret(1310) = dble(0.4106000000)
            ret(1312) = dble(0.4033000000)
            ret(1314) = dble(0.4022000000)
            ret(1316) = dble(0.3979000000)
            ret(1318) = dble(0.4017000000)
            ret(1320) = dble(0.4016000000)
            ret(1322) = dble(0.3986000000)
            ret(1324) = dble(0.3981000000)
            ret(1326) = dble(0.3949000000)
            ret(1328) = dble(0.3908000000)
            ret(1330) = dble(0.3878000000)
            ret(1332) = dble(0.3863000000)
            ret(1334) = dble(0.3892000000)
            ret(1336) = dble(0.3866000000)
            ret(1338) = dble(0.3832000000)
            ret(1340) = dble(0.3790000000)
            ret(1342) = dble(0.3805000000)
            ret(1344) = dble(0.3798000000)
            ret(1346) = dble(0.3772000000)
            ret(1348) = dble(0.3766000000)
            ret(1350) = dble(0.3724000000)
            ret(1352) = dble(0.3742000000)
            ret(1354) = dble(0.3722000000)
            ret(1356) = dble(0.3675000000)
            ret(1358) = dble(0.3688000000)
            ret(1360) = dble(0.3673000000)
            ret(1362) = dble(0.3677000000)
            ret(1364) = dble(0.3657000000)
            ret(1366) = dble(0.3657000000)
            ret(1368) = dble(0.3628000000)
            ret(1370) = dble(0.3599000000)
            ret(1372) = dble(0.3621000000)
            ret(1374) = dble(0.3611000000)
            ret(1376) = dble(0.3561000000)
            ret(1378) = dble(0.3580000000)
            ret(1380) = dble(0.3579000000)
            ret(1382) = dble(0.3545000000)
            ret(1384) = dble(0.3547000000)
            ret(1386) = dble(0.3532000000)
            ret(1388) = dble(0.3530000000)
            ret(1390) = dble(0.3506000000)
            ret(1392) = dble(0.3513000000)
            ret(1394) = dble(0.3488000000)
            ret(1396) = dble(0.3487000000)
            ret(1398) = dble(0.3492000000)
            ret(1400) = dble(0.3427000000)
            ret(1402) = dble(0.3439000000)
            ret(1404) = dble(0.3428000000)
            ret(1406) = dble(0.3431000000)
            ret(1408) = dble(0.3427000000)
            ret(1410) = dble(0.3418000000)
            ret(1412) = dble(0.3348000000)
            ret(1414) = dble(0.3377000000)
            ret(1416) = dble(0.3385000000)
            ret(1418) = dble(0.3386000000)
            ret(1420) = dble(0.3357000000)
            ret(1422) = dble(0.3315000000)
            ret(1424) = dble(0.3311000000)
            ret(1426) = dble(0.3281000000)
            ret(1428) = dble(0.3285000000)
            ret(1430) = dble(0.3257000000)
            ret(1432) = dble(0.3300000000)
            ret(1434) = dble(0.3284000000)
            ret(1436) = dble(0.3285000000)
            ret(1438) = dble(0.3283000000)
            ret(1440) = dble(0.3188000000)
            ret(1442) = dble(0.3186000000)
            ret(1444) = dble(0.3197000000)
            ret(1446) = dble(0.3216000000)
            ret(1448) = dble(0.3216000000)
            ret(1450) = dble(0.3187000000)
            ret(1452) = dble(0.3154000000)
            ret(1454) = dble(0.3143000000)
            ret(1456) = dble(0.3131000000)
            ret(1458) = dble(0.3167000000)
            ret(1460) = dble(0.3156000000)
            ret(1462) = dble(0.3121000000)
            ret(1464) = dble(0.3105000000)
            ret(1466) = dble(0.3108000000)
            ret(1468) = dble(0.3114000000)
            ret(1470) = dble(0.3102000000)
            ret(1472) = dble(0.3073000000)
            ret(1474) = dble(0.3034000000)
            ret(1476) = dble(0.3048000000)
            ret(1478) = dble(0.3044000000)
            ret(1480) = dble(0.3068000000)
            ret(1482) = dble(0.3044000000)
            ret(1484) = dble(0.3039000000)
            ret(1486) = dble(0.3033000000)
            ret(1488) = dble(0.2855000000)
            ret(1490) = dble(0.3015000000)
            ret(1492) = dble(0.3018000000)
            ret(1494) = dble(0.3033000000)
            ret(1496) = dble(0.2972000000)
            ret(1498) = dble(0.2994000000)
            ret(1500) = dble(0.3011000000)
            ret(1502) = dble(0.2924000000)
            ret(1504) = dble(0.2799000000)
            ret(1506) = dble(0.2848000000)
            ret(1508) = dble(0.2919000000)
            ret(1510) = dble(0.2947000000)
            ret(1512) = dble(0.2913000000)
            ret(1514) = dble(0.2883000000)
            ret(1516) = dble(0.2882000000)
            ret(1518) = dble(0.2884000000)
            ret(1520) = dble(0.2866000000)
            ret(1522) = dble(0.2824000000)
            ret(1524) = dble(0.2835000000)
            ret(1526) = dble(0.2846000000)
            ret(1528) = dble(0.2846000000)
            ret(1530) = dble(0.2765000000)
            ret(1532) = dble(0.2823000000)
            ret(1534) = dble(0.2784000000)
            ret(1536) = dble(0.2806000000)
            ret(1538) = dble(0.2773000000)
            ret(1540) = dble(0.2730000000)
            ret(1542) = dble(0.2753000000)
            ret(1544) = dble(0.2778000000)
            ret(1546) = dble(0.2772000000)
            ret(1548) = dble(0.2711000000)
            ret(1550) = dble(0.2713000000)
            ret(1552) = dble(0.2731000000)
            ret(1554) = dble(0.2676000000)
            ret(1556) = dble(0.2671000000)
            ret(1558) = dble(0.2689000000)
            ret(1560) = dble(0.2683000000)
            ret(1562) = dble(0.2697000000)
            ret(1564) = dble(0.2669000000)
            ret(1566) = dble(0.2654000000)
            ret(1568) = dble(0.2633000000)
            ret(1570) = dble(0.2645000000)
            ret(1572) = dble(0.2673000000)
            ret(1574) = dble(0.2610000000)
            ret(1576) = dble(0.2536000000)
            ret(1578) = dble(0.2547000000)
            ret(1580) = dble(0.2650000000)
            ret(1582) = dble(0.2590000000)
            ret(1584) = dble(0.2591000000)
            ret(1586) = dble(0.2599000000)
            ret(1588) = dble(0.2490000000)
            ret(1590) = dble(0.2405000000)
            ret(1592) = dble(0.2526000000)
            ret(1594) = dble(0.2583000000)
            ret(1596) = dble(0.2506000000)
            ret(1598) = dble(0.2545000000)
            ret(1600) = dble(0.2512000000)
            ret(1602) = dble(0.2489000000)
            ret(1604) = dble(0.2497000000)
            ret(1606) = dble(0.2477000000)
            ret(1608) = dble(0.2491000000)
            ret(1610) = dble(0.2400000000)
            ret(1612) = dble(0.2430000000)
            ret(1614) = dble(0.2449000000)
            ret(1616) = dble(0.2374000000)
            ret(1618) = dble(0.2423000000)
            ret(1620) = dble(0.2369000000)
            ret(1622) = dble(0.2383000000)
            ret(1624) = dble(0.2416000000)
            ret(1626) = dble(0.2402000000)
            ret(1628) = dble(0.2418000000)
            ret(1630) = dble(0.2393000000)
            ret(1632) = dble(0.2387000000)
            ret(1634) = dble(0.2359000000)
            ret(1636) = dble(0.2357000000)
            ret(1638) = dble(0.2274000000)
            ret(1640) = dble(0.2262000000)
            ret(1642) = dble(0.2266000000)
            ret(1644) = dble(0.2278000000)
            ret(1646) = dble(0.2294000000)
            ret(1648) = dble(0.2292000000)
            ret(1650) = dble(0.2272000000)
            ret(1652) = dble(0.2268000000)
            ret(1654) = dble(0.2262000000)
            ret(1656) = dble(0.2260000000)
            ret(1658) = dble(0.2252000000)
            ret(1660) = dble(0.2245000000)
            ret(1662) = dble(0.2246000000)
            ret(1664) = dble(0.2227000000)
            ret(1666) = dble(0.2212000000)
            ret(1668) = dble(0.2193000000)
            ret(1670) = dble(0.2225000000)
            ret(1672) = dble(0.2173000000)
            ret(1674) = dble(0.2193000000)
            ret(1676) = dble(0.2161000000)
            ret(1678) = dble(0.2168000000)
            ret(1680) = dble(0.2080000000)
            ret(1682) = dble(0.2054000000)
            ret(1684) = dble(0.2129000000)
            ret(1686) = dble(0.2131000000)
            ret(1688) = dble(0.2120000000)
            ret(1690) = dble(0.2105000000)
            ret(1692) = dble(0.2123000000)
            ret(1694) = dble(0.2112000000)
            ret(1696) = dble(0.2100000000)
            ret(1698) = dble(0.2089000000)
            ret(1700) = dble(0.2063000000)
            ret(1702) = dble(0.2047000000)
            ret(1704) = dble(0.2052000000)
            ret(1706) = dble(0.2050000000)
            ret(1708) = dble(0.2017000000)
            ret(1710) = dble(0.2013000000)
            ret(1712) = dble(0.1982000000)
            ret(1714) = dble(0.2037000000)
            ret(1716) = dble(0.2022000000)
            ret(1718) = dble(0.2010000000)
            ret(1720) = dble(0.1993000000)
            ret(1722) = dble(0.1975000000)
            ret(1724) = dble(0.1954000000)
            ret(1726) = dble(0.1982000000)
            ret(1728) = dble(0.1971000000)
            ret(1730) = dble(0.1984000000)
            ret(1732) = dble(0.1936000000)
            ret(1734) = dble(0.1874000000)
            ret(1736) = dble(0.1827000000)
            ret(1738) = dble(0.1863000000)
            ret(1740) = dble(0.1905000000)
            ret(1742) = dble(0.1902000000)
            ret(1744) = dble(0.1907000000)
            ret(1746) = dble(0.1867000000)
            ret(1748) = dble(0.1872000000)
            ret(1750) = dble(0.1858000000)
            ret(1752) = dble(0.1850000000)
            ret(1754) = dble(0.1856000000)
            ret(1756) = dble(0.1849000000)
            ret(1758) = dble(0.1843000000)
            ret(1760) = dble(0.1831000000)
            ret(1762) = dble(0.1793000000)
            ret(1764) = dble(0.1807000000)
            ret(1766) = dble(0.1817000000)
            ret(1768) = dble(0.1802000000)
            ret(1770) = dble(0.1791000000)
            ret(1772) = dble(0.1794000000)
            ret(1774) = dble(0.1792000000)
            ret(1776) = dble(0.1763000000)
            ret(1778) = dble(0.1747000000)
            ret(1780) = dble(0.1756000000)
            ret(1782) = dble(0.1747000000)
            ret(1784) = dble(0.1735000000)
            ret(1786) = dble(0.1739000000)
            ret(1788) = dble(0.1747000000)
            ret(1790) = dble(0.1733000000)
            ret(1792) = dble(0.1721000000)
            ret(1794) = dble(0.1709000000)
            ret(1796) = dble(0.1706000000)
            ret(1798) = dble(0.1703000000)
            ret(1800) = dble(0.1699000000)
            ret(1802) = dble(0.1672000000)
            ret(1804) = dble(0.1688000000)
            ret(1806) = dble(0.1688000000)
            ret(1808) = dble(0.1685000000)
            ret(1810) = dble(0.1686000000)
            ret(1812) = dble(0.1675000000)
            ret(1814) = dble(0.1658000000)
            ret(1816) = dble(0.1605000000)
            ret(1818) = dble(0.1520000000)
            ret(1820) = dble(0.1596000000)
            ret(1822) = dble(0.1598000000)
            ret(1824) = dble(0.1624000000)
            ret(1826) = dble(0.1628000000)
            ret(1828) = dble(0.1611000000)
            ret(1830) = dble(0.1606000000)
            ret(1832) = dble(0.1593000000)
            ret(1834) = dble(0.1585000000)
            ret(1836) = dble(0.1581000000)
            ret(1838) = dble(0.1562000000)
            ret(1840) = dble(0.1562000000)
            ret(1842) = dble(0.1540000000)
            ret(1844) = dble(0.1541000000)
            ret(1846) = dble(0.1535000000)
            ret(1848) = dble(0.1510000000)
            ret(1850) = dble(0.1546000000)
            ret(1852) = dble(0.1534000000)
            ret(1854) = dble(0.1525000000)
            ret(1856) = dble(0.1509000000)
            ret(1858) = dble(0.1525000000)
            ret(1860) = dble(0.1503000000)
            ret(1862) = dble(0.1504000000)
            ret(1864) = dble(0.1509000000)
            ret(1866) = dble(0.1494000000)
            ret(1868) = dble(0.1492000000)
            ret(1870) = dble(0.1508000000)
            ret(1872) = dble(0.1473000000)
            ret(1874) = dble(0.1401000000)
            ret(1876) = dble(0.1299000000)
            ret(1878) = dble(0.1441000000)
            ret(1880) = dble(0.1462000000)
            ret(1882) = dble(0.1474000000)
            ret(1884) = dble(0.1464000000)
            ret(1886) = dble(0.1439000000)
            ret(1888) = dble(0.1453000000)
            ret(1890) = dble(0.1424000000)
            ret(1892) = dble(0.1408000000)
            ret(1894) = dble(0.1396000000)
            ret(1896) = dble(0.1373000000)
            ret(1898) = dble(0.1390000000)
            ret(1900) = dble(0.1397000000)
            ret(1902) = dble(0.1409000000)
            ret(1904) = dble(0.1386000000)
            ret(1906) = dble(0.1390000000)
            ret(1908) = dble(0.1377000000)
            ret(1910) = dble(0.1378000000)
            ret(1912) = dble(0.1354000000)
            ret(1914) = dble(0.1370000000)
            ret(1916) = dble(0.1360000000)
            ret(1918) = dble(0.1353000000)
            ret(1920) = dble(0.1333000000)
            ret(1922) = dble(0.1350000000)
            ret(1924) = dble(0.1341000000)
            ret(1926) = dble(0.1344000000)
            ret(1928) = dble(0.1322000000)
            ret(1930) = dble(0.1313000000)
            ret(1932) = dble(0.1308000000)
            ret(1934) = dble(0.1320000000)
            ret(1936) = dble(0.1328000000)
            ret(1938) = dble(0.1321000000)
            ret(1940) = dble(0.1299000000)
            ret(1942) = dble(0.1294000000)
            ret(1944) = dble(0.1203000000)
            ret(1946) = dble(0.1192000000)
            ret(1948) = dble(0.1271000000)
            ret(1950) = dble(0.1261000000)
            ret(1952) = dble(0.1255000000)
            ret(1954) = dble(0.1286000000)
            ret(1956) = dble(0.1276000000)
            ret(1958) = dble(0.1271000000)
            ret(1960) = dble(0.1261000000)
            ret(1962) = dble(0.1240000000)
            ret(1964) = dble(0.1222000000)
            ret(1966) = dble(0.1231000000)
            ret(1968) = dble(0.1240000000)
            ret(1970) = dble(0.1239000000)
            ret(1972) = dble(0.1213000000)
            ret(1974) = dble(0.1208000000)
            ret(1976) = dble(0.1224000000)
            ret(1978) = dble(0.1194000000)
            ret(1980) = dble(0.1196000000)
            ret(1982) = dble(0.1205000000)
            ret(1984) = dble(0.1197000000)
            ret(1986) = dble(0.1178000000)
            ret(1988) = dble(0.1195000000)
            ret(1990) = dble(0.1198000000)
            ret(1992) = dble(0.1180000000)
            ret(1994) = dble(0.1162000000)
            ret(1996) = dble(0.1173000000)
            ret(1998) = dble(0.1159000000)
            ret(2000) = dble(0.1170000000)
            ret(2002) = dble(0.1161000000)
            ret(2004) = dble(0.1148000000)
            ret(2006) = dble(0.1147000000)
            ret(2008) = dble(0.1154000000)
            ret(2010) = dble(0.1149000000)
            ret(2012) = dble(0.1145000000)
            ret(2014) = dble(0.1138000000)
            ret(2016) = dble(0.1137000000)
            ret(2018) = dble(0.1134000000)
            ret(2020) = dble(0.1116000000)
            ret(2022) = dble(0.1107000000)
            ret(2024) = dble(0.1116000000)
            ret(2026) = dble(0.1115000000)
            ret(2028) = dble(0.1107000000)
            ret(2030) = dble(0.1086000000)
            ret(2032) = dble(0.1098000000)
            ret(2034) = dble(0.1092000000)
            ret(2036) = dble(0.1083000000)
            ret(2038) = dble(0.1064000000)
            ret(2040) = dble(0.1078000000)
            ret(2042) = dble(0.1076000000)
            ret(2044) = dble(0.1076000000)
            ret(2046) = dble(0.1071000000)
            ret(2048) = dble(0.1063000000)
            return
         end if
      end if

      if (present(Global)) then
         if (Global) then
            ret(280) = dble(4.7309E-23)
            ret(281) = dble(5.6895E-21)
            ret(282) = dble(1.1946E-18)
            ret(283) = dble(1.8452E-17)
            ret(284) = dble(7.267E-16)
            ret(285) = dble(8.0142E-15)
            ret(286) = dble(1.3684E-13)
            ret(287) = dble(2.7367E-12)
            ret(288) = dble(6.2337E-11)
            ret(289) = dble(5.6265E-10)
            ret(290) = dble(6.0168E-09)
            ret(291) = dble(3.5052E-08)
            ret(292) = dble(2.683E-07)
            ret(293) = dble(8.6466E-07)
            ret(294) = dble(4.1744E-06)
            ret(295) = dble(1.229E-05)
            ret(296) = dble(4.7904E-05)
            ret(297) = dble(9.68E-05)
            ret(298) = dble(0.00028988)
            ret(299) = dble(0.00049211)
            ret(300) = dble(0.0010205)
            ret(301) = dble(0.00193)
            ret(302) = dble(0.0029209)
            ret(303) = dble(0.0070945)
            ret(304) = dble(0.0094701)
            ret(305) = dble(0.016463)
            ret(306) = dble(0.018577)
            ret(307) = dble(0.027849)
            ret(308) = dble(0.037837)
            ret(309) = dble(0.040534)
            ret(310) = dble(0.050939)
            ret(311) = dble(0.082922)
            ret(312) = dble(0.093376)
            ret(313) = dble(0.10733)
            ret(314) = dble(0.11969)
            ret(315) = dble(0.13625)
            ret(316) = dble(0.12348)
            ret(317) = dble(0.17158)
            ret(318) = dble(0.17594)
            ret(319) = dble(0.2047)
            ret(320) = dble(0.20527)
            ret(321) = dble(0.25024)
            ret(322) = dble(0.22203)
            ret(323) = dble(0.21226)
            ret(324) = dble(0.27537)
            ret(325) = dble(0.27894)
            ret(326) = dble(0.3812)
            ret(327) = dble(0.39806)
            ret(328) = dble(0.35116)
            ret(329) = dble(0.42235)
            ret(330) = dble(0.47139)
            ret(331) = dble(0.40262)
            ret(332) = dble(0.43623)
            ret(333) = dble(0.42944)
            ret(334) = dble(0.41497)
            ret(335) = dble(0.46388)
            ret(336) = dble(0.41519)
            ret(337) = dble(0.3738)
            ret(338) = dble(0.43411)
            ret(339) = dble(0.46355)
            ret(340) = dble(0.5018)
            ret(341) = dble(0.47139)
            ret(342) = dble(0.48934)
            ret(343) = dble(0.51489)
            ret(344) = dble(0.41843)
            ret(345) = dble(0.45898)
            ret(346) = dble(0.47778)
            ret(347) = dble(0.49404)
            ret(348) = dble(0.47511)
            ret(349) = dble(0.46564)
            ret(350) = dble(0.52798)
            ret(351) = dble(0.55172)
            ret(352) = dble(0.51791)
            ret(353) = dble(0.5204)
            ret(354) = dble(0.60498)
            ret(355) = dble(0.6114)
            ret(356) = dble(0.55387)
            ret(357) = dble(0.45673)
            ret(358) = dble(0.43006)
            ret(359) = dble(0.46953)
            ret(360) = dble(0.59817)
            ret(361) = dble(0.52024)
            ret(362) = dble(0.5342)
            ret(363) = dble(0.60191)
            ret(364) = dble(0.60628)
            ret(365) = dble(0.62359)
            ret(366) = dble(0.73532)
            ret(367) = dble(0.72285)
            ret(368) = dble(0.66759)
            ret(369) = dble(0.69315)
            ret(370) = dble(0.75507)
            ret(371) = dble(0.69338)
            ret(372) = dble(0.67444)
            ret(373) = dble(0.61886)
            ret(374) = dble(0.5564)
            ret(375) = dble(0.5893)
            ret(376) = dble(0.6748)
            ret(377) = dble(0.71225)
            ret(378) = dble(0.85595)
            ret(379) = dble(0.74389)
            ret(380) = dble(0.70077)
            ret(381) = dble(0.76383)
            ret(382) = dble(0.58678)
            ret(383) = dble(0.45499)
            ret(384) = dble(0.50968)
            ret(385) = dble(0.67355)
            ret(386) = dble(0.621)
            ret(387) = dble(0.65147)
            ret(388) = dble(0.63582)
            ret(389) = dble(0.68543)
            ret(390) = dble(0.79699)
            ret(391) = dble(0.85138)
            ret(392) = dble(0.79493)
            ret(393) = dble(0.47975)
            ret(394) = dble(0.49567)
            ret(395) = dble(0.80772)
            ret(396) = dble(0.75655)
            ret(397) = dble(0.42619)
            ret(398) = dble(0.85249)
            ret(399) = dble(1.0693)
            ret(400) = dble(1.1141)
            ret(401) = dble(1.1603)
            ret(402) = dble(1.2061)
            ret(403) = dble(1.1613)
            ret(404) = dble(1.1801)
            ret(405) = dble(1.1511)
            ret(406) = dble(1.1227)
            ret(407) = dble(1.1026)
            ret(408) = dble(1.1514)
            ret(409) = dble(1.2299)
            ret(410) = dble(1.0485)
            ret(411) = dble(1.1738)
            ret(412) = dble(1.2478)
            ret(413) = dble(1.1971)
            ret(414) = dble(1.1842)
            ret(415) = dble(1.2258)
            ret(416) = dble(1.2624)
            ret(417) = dble(1.2312)
            ret(418) = dble(1.1777)
            ret(419) = dble(1.2258)
            ret(420) = dble(1.1232)
            ret(421) = dble(1.2757)
            ret(422) = dble(1.2583)
            ret(423) = dble(1.2184)
            ret(424) = dble(1.2117)
            ret(425) = dble(1.2488)
            ret(426) = dble(1.2135)
            ret(427) = dble(1.1724)
            ret(428) = dble(1.1839)
            ret(429) = dble(1.0963)
            ret(430) = dble(0.87462)
            ret(431) = dble(0.79394)
            ret(432) = dble(1.3207)
            ret(433) = dble(1.2288)
            ret(434) = dble(1.1352)
            ret(435) = dble(1.2452)
            ret(436) = dble(1.3659)
            ret(437) = dble(1.3943)
            ret(438) = dble(1.2238)
            ret(439) = dble(1.1775)
            ret(440) = dble(1.3499)
            ret(441) = dble(1.3313)
            ret(442) = dble(1.425)
            ret(443) = dble(1.4453)
            ret(444) = dble(1.4084)
            ret(445) = dble(1.4619)
            ret(446) = dble(1.3108)
            ret(447) = dble(1.4903)
            ret(448) = dble(1.5081)
            ret(449) = dble(1.5045)
            ret(450) = dble(1.5595)
            ret(451) = dble(1.6173)
            ret(452) = dble(1.5482)
            ret(453) = dble(1.4297)
            ret(454) = dble(1.5335)
            ret(455) = dble(1.5224)
            ret(456) = dble(1.5724)
            ret(457) = dble(1.5854)
            ret(458) = dble(1.5514)
            ret(459) = dble(1.5391)
            ret(460) = dble(1.5291)
            ret(461) = dble(1.5827)
            ret(462) = dble(1.5975)
            ret(463) = dble(1.6031)
            ret(464) = dble(1.5544)
            ret(465) = dble(1.535)
            ret(466) = dble(1.5673)
            ret(467) = dble(1.4973)
            ret(468) = dble(1.5619)
            ret(469) = dble(1.5682)
            ret(470) = dble(1.5077)
            ret(471) = dble(1.5331)
            ret(472) = dble(1.6126)
            ret(473) = dble(1.5499)
            ret(474) = dble(1.5671)
            ret(475) = dble(1.6185)
            ret(476) = dble(1.5631)
            ret(477) = dble(1.5724)
            ret(478) = dble(1.623)
            ret(479) = dble(1.5916)
            ret(480) = dble(1.6181)
            ret(481) = dble(1.6177)
            ret(482) = dble(1.6236)
            ret(483) = dble(1.6038)
            ret(484) = dble(1.5734)
            ret(485) = dble(1.5683)
            ret(486) = dble(1.2716)
            ret(487) = dble(1.4241)
            ret(488) = dble(1.5413)
            ret(489) = dble(1.4519)
            ret(490) = dble(1.6224)
            ret(491) = dble(1.5595)
            ret(492) = dble(1.4869)
            ret(493) = dble(1.5903)
            ret(494) = dble(1.5525)
            ret(495) = dble(1.6485)
            ret(496) = dble(1.5676)
            ret(497) = dble(1.5944)
            ret(498) = dble(1.5509)
            ret(499) = dble(1.5507)
            ret(500) = dble(1.5451)
            ret(501) = dble(1.4978)
            ret(502) = dble(1.4966)
            ret(503) = dble(1.5653)
            ret(504) = dble(1.4587)
            ret(505) = dble(1.5635)
            ret(506) = dble(1.6264)
            ret(507) = dble(1.556)
            ret(508) = dble(1.5165)
            ret(509) = dble(1.5893)
            ret(510) = dble(1.5481)
            ret(511) = dble(1.5769)
            ret(512) = dble(1.6186)
            ret(513) = dble(1.5206)
            ret(514) = dble(1.4885)
            ret(515) = dble(1.5314)
            ret(516) = dble(1.5455)
            ret(517) = dble(1.2594)
            ret(518) = dble(1.4403)
            ret(519) = dble(1.3957)
            ret(520) = dble(1.5236)
            ret(521) = dble(1.5346)
            ret(522) = dble(1.569)
            ret(523) = dble(1.4789)
            ret(524) = dble(1.5905)
            ret(525) = dble(1.5781)
            ret(526) = dble(1.5341)
            ret(527) = dble(1.3417)
            ret(528) = dble(1.5357)
            ret(529) = dble(1.6071)
            ret(530) = dble(1.5446)
            ret(531) = dble(1.6292)
            ret(532) = dble(1.5998)
            ret(533) = dble(1.4286)
            ret(534) = dble(1.5302)
            ret(535) = dble(1.5535)
            ret(536) = dble(1.6199)
            ret(537) = dble(1.4989)
            ret(538) = dble(1.5738)
            ret(539) = dble(1.5352)
            ret(540) = dble(1.4825)
            ret(541) = dble(1.4251)
            ret(542) = dble(1.5511)
            ret(543) = dble(1.5256)
            ret(544) = dble(1.5792)
            ret(545) = dble(1.5435)
            ret(546) = dble(1.5291)
            ret(547) = dble(1.549)
            ret(548) = dble(1.5049)
            ret(549) = dble(1.552)
            ret(550) = dble(1.5399)
            ret(551) = dble(1.5382)
            ret(552) = dble(1.5697)
            ret(553) = dble(1.525)
            ret(554) = dble(1.5549)
            ret(555) = dble(1.5634)
            ret(556) = dble(1.5366)
            ret(557) = dble(1.4988)
            ret(558) = dble(1.531)
            ret(559) = dble(1.4483)
            ret(560) = dble(1.474)
            ret(561) = dble(1.5595)
            ret(562) = dble(1.4847)
            ret(563) = dble(1.5408)
            ret(564) = dble(1.5106)
            ret(565) = dble(1.5201)
            ret(566) = dble(1.4374)
            ret(567) = dble(1.532)
            ret(568) = dble(1.518)
            ret(569) = dble(1.4807)
            ret(570) = dble(1.4816)
            ret(571) = dble(1.4331)
            ret(572) = dble(1.5134)
            ret(573) = dble(1.5198)
            ret(574) = dble(1.5119)
            ret(575) = dble(1.4777)
            ret(576) = dble(1.4654)
            ret(577) = dble(1.5023)
            ret(578) = dble(1.456)
            ret(579) = dble(1.477)
            ret(580) = dble(1.502)
            ret(581) = dble(1.5089)
            ret(582) = dble(1.532)
            ret(583) = dble(1.5479)
            ret(584) = dble(1.5448)
            ret(585) = dble(1.5324)
            ret(586) = dble(1.4953)
            ret(587) = dble(1.5281)
            ret(588) = dble(1.4934)
            ret(589) = dble(1.2894)
            ret(590) = dble(1.3709)
            ret(591) = dble(1.4662)
            ret(592) = dble(1.4354)
            ret(593) = dble(1.4561)
            ret(594) = dble(1.4491)
            ret(595) = dble(1.4308)
            ret(596) = dble(1.4745)
            ret(597) = dble(1.4788)
            ret(598) = dble(1.4607)
            ret(599) = dble(1.4606)
            ret(600) = dble(1.4753)
            ret(601) = dble(1.4579)
            ret(602) = dble(1.436)
            ret(603) = dble(1.4664)
            ret(604) = dble(1.4921)
            ret(605) = dble(1.4895)
            ret(606) = dble(1.4822)
            ret(607) = dble(1.4911)
            ret(608) = dble(1.4862)
            ret(609) = dble(1.4749)
            ret(610) = dble(1.4686)
            ret(611) = dble(1.4611)
            ret(612) = dble(1.4831)
            ret(613) = dble(1.4621)
            ret(614) = dble(1.4176)
            ret(615) = dble(1.4697)
            ret(616) = dble(1.431)
            ret(617) = dble(1.4128)
            ret(618) = dble(1.4664)
            ret(619) = dble(1.4733)
            ret(620) = dble(1.4739)
            ret(621) = dble(1.4802)
            ret(622) = dble(1.4269)
            ret(623) = dble(1.4165)
            ret(624) = dble(1.4118)
            ret(625) = dble(1.4026)
            ret(626) = dble(1.4012)
            ret(627) = dble(1.4417)
            ret(628) = dble(1.3631)
            ret(629) = dble(1.4114)
            ret(630) = dble(1.3924)
            ret(631) = dble(1.4161)
            ret(632) = dble(1.3638)
            ret(633) = dble(1.4508)
            ret(634) = dble(1.4284)
            ret(635) = dble(1.4458)
            ret(636) = dble(1.4128)
            ret(637) = dble(1.461)
            ret(638) = dble(1.4707)
            ret(639) = dble(1.4646)
            ret(640) = dble(1.434)
            ret(641) = dble(1.4348)
            ret(642) = dble(1.4376)
            ret(643) = dble(1.4525)
            ret(644) = dble(1.4462)
            ret(645) = dble(1.4567)
            ret(646) = dble(1.415)
            ret(647) = dble(1.4086)
            ret(648) = dble(1.3952)
            ret(649) = dble(1.3519)
            ret(650) = dble(1.3594)
            ret(651) = dble(1.4447)
            ret(652) = dble(1.3871)
            ret(653) = dble(1.4311)
            ret(654) = dble(1.4153)
            ret(655) = dble(1.3499)
            ret(656) = dble(1.1851)
            ret(657) = dble(1.2393)
            ret(658) = dble(1.3855)
            ret(659) = dble(1.3905)
            ret(660) = dble(1.3992)
            ret(661) = dble(1.3933)
            ret(662) = dble(1.3819)
            ret(663) = dble(1.3844)
            ret(664) = dble(1.3967)
            ret(665) = dble(1.4214)
            ret(666) = dble(1.4203)
            ret(667) = dble(1.4102)
            ret(668) = dble(1.415)
            ret(669) = dble(1.4394)
            ret(670) = dble(1.4196)
            ret(671) = dble(1.4169)
            ret(672) = dble(1.3972)
            ret(673) = dble(1.4094)
            ret(674) = dble(1.4074)
            ret(675) = dble(1.3958)
            ret(676) = dble(1.412)
            ret(677) = dble(1.3991)
            ret(678) = dble(1.4066)
            ret(679) = dble(1.3947)
            ret(680) = dble(1.3969)
            ret(681) = dble(1.3915)
            ret(682) = dble(1.3981)
            ret(683) = dble(1.383)
            ret(684) = dble(1.3739)
            ret(685) = dble(1.3748)
            ret(686) = dble(1.3438)
            ret(687) = dble(0.96824)
            ret(688) = dble(1.1206)
            ret(689) = dble(1.1278)
            ret(690) = dble(1.1821)
            ret(691) = dble(1.2333)
            ret(692) = dble(1.2689)
            ret(693) = dble(1.2609)
            ret(694) = dble(1.2464)
            ret(695) = dble(1.2714)
            ret(696) = dble(1.2684)
            ret(697) = dble(1.3403)
            ret(698) = dble(1.3192)
            ret(699) = dble(1.2918)
            ret(700) = dble(1.2823)
            ret(701) = dble(1.2659)
            ret(702) = dble(1.2674)
            ret(703) = dble(1.2747)
            ret(704) = dble(1.3078)
            ret(705) = dble(1.3214)
            ret(706) = dble(1.3144)
            ret(707) = dble(1.309)
            ret(708) = dble(1.3048)
            ret(709) = dble(1.3095)
            ret(710) = dble(1.3175)
            ret(711) = dble(1.3155)
            ret(712) = dble(1.3071)
            ret(713) = dble(1.2918)
            ret(714) = dble(1.3029)
            ret(715) = dble(1.2587)
            ret(716) = dble(1.2716)
            ret(717) = dble(1.1071)
            ret(718) = dble(1.0296)
            ret(719) = dble(0.92318)
            ret(720) = dble(0.9855)
            ret(721) = dble(1.0861)
            ret(722) = dble(1.2407)
            ret(723) = dble(1.1444)
            ret(724) = dble(1.0555)
            ret(725) = dble(1.038)
            ret(726) = dble(1.0813)
            ret(727) = dble(1.085)
            ret(728) = dble(1.04)
            ret(729) = dble(1.0466)
            ret(730) = dble(1.1285)
            ret(731) = dble(1.0703)
            ret(732) = dble(1.1534)
            ret(733) = dble(1.1962)
            ret(734) = dble(1.2357)
            ret(735) = dble(1.2178)
            ret(736) = dble(1.2059)
            ret(737) = dble(1.2039)
            ret(738) = dble(1.2269)
            ret(739) = dble(1.1905)
            ret(740) = dble(1.2195)
            ret(741) = dble(1.2148)
            ret(742) = dble(1.2153)
            ret(743) = dble(1.2405)
            ret(744) = dble(1.2503)
            ret(745) = dble(1.2497)
            ret(746) = dble(1.247)
            ret(747) = dble(1.2477)
            ret(748) = dble(1.2401)
            ret(749) = dble(1.2357)
            ret(750) = dble(1.2341)
            ret(751) = dble(1.2286)
            ret(752) = dble(1.233)
            ret(753) = dble(1.2266)
            ret(754) = dble(1.242)
            ret(755) = dble(1.2383)
            ret(756) = dble(1.2232)
            ret(757) = dble(1.2221)
            ret(758) = dble(1.2295)
            ret(759) = dble(1.1945)
            ret(760) = dble(0.26604)
            ret(761) = dble(0.15396)
            ret(762) = dble(0.68766)
            ret(763) = dble(0.37952)
            ret(764) = dble(0.53878)
            ret(765) = dble(0.68601)
            ret(766) = dble(0.81461)
            ret(767) = dble(0.97417)
            ret(768) = dble(1.1138)
            ret(769) = dble(1.1278)
            ret(770) = dble(1.1608)
            ret(771) = dble(1.1686)
            ret(772) = dble(1.1778)
            ret(773) = dble(1.1771)
            ret(774) = dble(1.1771)
            ret(775) = dble(1.1771)
            ret(776) = dble(1.1798)
            ret(777) = dble(1.1727)
            ret(778) = dble(1.1713)
            ret(779) = dble(1.1765)
            ret(780) = dble(1.1636)
            ret(781) = dble(1.1607)
            ret(782) = dble(1.1662)
            ret(783) = dble(1.1614)
            ret(784) = dble(1.1536)
            ret(785) = dble(1.1586)
            ret(786) = dble(1.1592)
            ret(787) = dble(1.145)
            ret(788) = dble(1.1305)
            ret(789) = dble(1.1257)
            ret(790) = dble(1.091)
            ret(791) = dble(1.1058)
            ret(792) = dble(1.0953)
            ret(793) = dble(1.0875)
            ret(794) = dble(1.0972)
            ret(795) = dble(1.0932)
            ret(796) = dble(1.0742)
            ret(797) = dble(1.0913)
            ret(798) = dble(1.1121)
            ret(799) = dble(1.0905)
            ret(800) = dble(1.0725)
            ret(801) = dble(1.0843)
            ret(802) = dble(1.0856)
            ret(803) = dble(1.0657)
            ret(804) = dble(1.0782)
            ret(805) = dble(1.0545)
            ret(806) = dble(1.0974)
            ret(807) = dble(1.0859)
            ret(808) = dble(1.0821)
            ret(809) = dble(1.0548)
            ret(810) = dble(1.0559)
            ret(811) = dble(1.0533)
            ret(812) = dble(1.0268)
            ret(813) = dble(1.0086)
            ret(814) = dble(0.90356)
            ret(815) = dble(0.89523)
            ret(816) = dble(0.83216)
            ret(817) = dble(0.85183)
            ret(818) = dble(0.82259)
            ret(819) = dble(0.90519)
            ret(820) = dble(0.86188)
            ret(821) = dble(0.99764)
            ret(822) = dble(0.95157)
            ret(823) = dble(0.67271)
            ret(824) = dble(0.93506)
            ret(825) = dble(0.96935)
            ret(826) = dble(0.93381)
            ret(827) = dble(0.98465)
            ret(828) = dble(0.84979)
            ret(829) = dble(0.9293)
            ret(830) = dble(0.91601)
            ret(831) = dble(0.92392)
            ret(832) = dble(0.89426)
            ret(833) = dble(0.9565)
            ret(834) = dble(0.93412)
            ret(835) = dble(1.0032)
            ret(836) = dble(0.97234)
            ret(837) = dble(1.0092)
            ret(838) = dble(0.99901)
            ret(839) = dble(1.0013)
            ret(840) = dble(1.0157)
            ret(841) = dble(1.0101)
            ret(842) = dble(0.99703)
            ret(843) = dble(1.0053)
            ret(844) = dble(0.98631)
            ret(845) = dble(1.0165)
            ret(846) = dble(1.0187)
            ret(847) = dble(0.9917)
            ret(848) = dble(0.99217)
            ret(849) = dble(0.98596)
            ret(850) = dble(0.89372)
            ret(851) = dble(0.97493)
            ret(852) = dble(0.96927)
            ret(853) = dble(0.96486)
            ret(854) = dble(0.85112)
            ret(855) = dble(0.913)
            ret(856) = dble(0.97317)
            ret(857) = dble(0.99166)
            ret(858) = dble(0.99196)
            ret(859) = dble(0.99171)
            ret(860) = dble(0.98816)
            ret(861) = dble(0.98679)
            ret(862) = dble(0.99449)
            ret(863) = dble(1.0005)
            ret(864) = dble(0.97916)
            ret(865) = dble(0.96324)
            ret(866) = dble(0.849)
            ret(867) = dble(0.91546)
            ret(868) = dble(0.9592)
            ret(869) = dble(0.94956)
            ret(870) = dble(0.96755)
            ret(871) = dble(0.95387)
            ret(872) = dble(0.96686)
            ret(873) = dble(0.95721)
            ret(874) = dble(0.94042)
            ret(875) = dble(0.92687)
            ret(876) = dble(0.95277)
            ret(877) = dble(0.95615)
            ret(878) = dble(0.95237)
            ret(879) = dble(0.93656)
            ret(880) = dble(0.93957)
            ret(881) = dble(0.90861)
            ret(882) = dble(0.93245)
            ret(883) = dble(0.92927)
            ret(884) = dble(0.93305)
            ret(885) = dble(0.94423)
            ret(886) = dble(0.90752)
            ret(887) = dble(0.91062)
            ret(888) = dble(0.92228)
            ret(889) = dble(0.93455)
            ret(890) = dble(0.92393)
            ret(891) = dble(0.92584)
            ret(892) = dble(0.90881)
            ret(893) = dble(0.87327)
            ret(894) = dble(0.8513)
            ret(895) = dble(0.81357)
            ret(896) = dble(0.76253)
            ret(897) = dble(0.66566)
            ret(898) = dble(0.7178)
            ret(899) = dble(0.54871)
            ret(900) = dble(0.7426)
            ret(901) = dble(0.59933)
            ret(902) = dble(0.66791)
            ret(903) = dble(0.68889)
            ret(904) = dble(0.84457)
            ret(905) = dble(0.81709)
            ret(906) = dble(0.77558)
            ret(907) = dble(0.63854)
            ret(908) = dble(0.65217)
            ret(909) = dble(0.70431)
            ret(910) = dble(0.62467)
            ret(911) = dble(0.66808)
            ret(912) = dble(0.68893)
            ret(913) = dble(0.62834)
            ret(914) = dble(0.62649)
            ret(915) = dble(0.67836)
            ret(916) = dble(0.57646)
            ret(917) = dble(0.73017)
            ret(918) = dble(0.59271)
            ret(919) = dble(0.73877)
            ret(920) = dble(0.74414)
            ret(921) = dble(0.78049)
            ret(922) = dble(0.70026)
            ret(923) = dble(0.74504)
            ret(924) = dble(0.7215)
            ret(925) = dble(0.7111)
            ret(926) = dble(0.70331)
            ret(927) = dble(0.78742)
            ret(928) = dble(0.58968)
            ret(929) = dble(0.55127)
            ret(930) = dble(0.4321)
            ret(931) = dble(0.40921)
            ret(932) = dble(0.30086)
            ret(933) = dble(0.24841)
            ret(934) = dble(0.1438)
            ret(935) = dble(0.25084)
            ret(936) = dble(0.16142)
            ret(937) = dble(0.16338)
            ret(938) = dble(0.20058)
            ret(939) = dble(0.39887)
            ret(940) = dble(0.47181)
            ret(941) = dble(0.37195)
            ret(942) = dble(0.40532)
            ret(943) = dble(0.27834)
            ret(944) = dble(0.28579)
            ret(945) = dble(0.36821)
            ret(946) = dble(0.19461)
            ret(947) = dble(0.37112)
            ret(948) = dble(0.27423)
            ret(949) = dble(0.49396)
            ret(950) = dble(0.14726)
            ret(951) = dble(0.48378)
            ret(952) = dble(0.26891)
            ret(953) = dble(0.34362)
            ret(954) = dble(0.42411)
            ret(955) = dble(0.34117)
            ret(956) = dble(0.32821)
            ret(957) = dble(0.27067)
            ret(958) = dble(0.46101)
            ret(959) = dble(0.37385)
            ret(960) = dble(0.42066)
            ret(961) = dble(0.4612)
            ret(962) = dble(0.44174)
            ret(963) = dble(0.50503)
            ret(964) = dble(0.4586)
            ret(965) = dble(0.50374)
            ret(966) = dble(0.50275)
            ret(967) = dble(0.5024)
            ret(968) = dble(0.6521)
            ret(969) = dble(0.68622)
            ret(970) = dble(0.63461)
            ret(971) = dble(0.71397)
            ret(972) = dble(0.68765)
            ret(973) = dble(0.60648)
            ret(974) = dble(0.57529)
            ret(975) = dble(0.58987)
            ret(976) = dble(0.57191)
            ret(977) = dble(0.63864)
            ret(978) = dble(0.61509)
            ret(979) = dble(0.63815)
            ret(980) = dble(0.60468)
            ret(981) = dble(0.71338)
            ret(982) = dble(0.69218)
            ret(983) = dble(0.66865)
            ret(984) = dble(0.73732)
            ret(985) = dble(0.68817)
            ret(986) = dble(0.75083)
            ret(987) = dble(0.73928)
            ret(988) = dble(0.73462)
            ret(989) = dble(0.74906)
            ret(990) = dble(0.73227)
            ret(991) = dble(0.75358)
            ret(992) = dble(0.75102)
            ret(993) = dble(0.73728)
            ret(994) = dble(0.7541)
            ret(995) = dble(0.75176)
            ret(996) = dble(0.74884)
            ret(997) = dble(0.73971)
            ret(998) = dble(0.73887)
            ret(999) = dble(0.73857)
            ret(1000) = dble(0.73532)
            ret(1001) = dble(0.74442)
            ret(1002) = dble(0.72805)
            ret(1003) = dble(0.73442)
            ret(1004) = dble(0.72336)
            ret(1005) = dble(0.68174)
            ret(1006) = dble(0.71252)
            ret(1007) = dble(0.72753)
            ret(1008) = dble(0.72685)
            ret(1009) = dble(0.71972)
            ret(1010) = dble(0.71914)
            ret(1011) = dble(0.72278)
            ret(1012) = dble(0.71877)
            ret(1013) = dble(0.71761)
            ret(1014) = dble(0.72068)
            ret(1015) = dble(0.70817)
            ret(1016) = dble(0.71129)
            ret(1017) = dble(0.70337)
            ret(1018) = dble(0.71422)
            ret(1019) = dble(0.68878)
            ret(1020) = dble(0.69896)
            ret(1021) = dble(0.70175)
            ret(1022) = dble(0.6897)
            ret(1023) = dble(0.69508)
            ret(1024) = dble(0.69058)
            ret(1025) = dble(0.69753)
            ret(1026) = dble(0.69636)
            ret(1027) = dble(0.69305)
            ret(1028) = dble(0.69385)
            ret(1029) = dble(0.68628)
            ret(1030) = dble(0.69055)
            ret(1031) = dble(0.68736)
            ret(1032) = dble(0.68787)
            ret(1033) = dble(0.67613)
            ret(1034) = dble(0.68015)
            ret(1035) = dble(0.68234)
            ret(1036) = dble(0.68202)
            ret(1037) = dble(0.67497)
            ret(1038) = dble(0.67172)
            ret(1039) = dble(0.67636)
            ret(1040) = dble(0.6717)
            ret(1041) = dble(0.67176)
            ret(1042) = dble(0.672)
            ret(1043) = dble(0.66525)
            ret(1044) = dble(0.66833)
            ret(1045) = dble(0.66452)
            ret(1046) = dble(0.64714)
            ret(1047) = dble(0.65694)
            ret(1048) = dble(0.66274)
            ret(1049) = dble(0.65896)
            ret(1050) = dble(0.65463)
            ret(1051) = dble(0.65521)
            ret(1052) = dble(0.65118)
            ret(1053) = dble(0.64919)
            ret(1054) = dble(0.64646)
            ret(1055) = dble(0.64847)
            ret(1056) = dble(0.64641)
            ret(1057) = dble(0.64482)
            ret(1058) = dble(0.63818)
            ret(1059) = dble(0.61875)
            ret(1060) = dble(0.63585)
            ret(1061) = dble(0.62121)
            ret(1062) = dble(0.63266)
            ret(1063) = dble(0.62239)
            ret(1064) = dble(0.63196)
            ret(1065) = dble(0.62913)
            ret(1066) = dble(0.61713)
            ret(1067) = dble(0.62032)
            ret(1068) = dble(0.61944)
            ret(1069) = dble(0.58626)
            ret(1070) = dble(0.60469)
            ret(1071) = dble(0.61661)
            ret(1072) = dble(0.61536)
            ret(1073) = dble(0.60363)
            ret(1074) = dble(0.62158)
            ret(1075) = dble(0.59252)
            ret(1076) = dble(0.61471)
            ret(1077) = dble(0.60434)
            ret(1078) = dble(0.60321)
            ret(1079) = dble(0.60474)
            ret(1080) = dble(0.59722)
            ret(1081) = dble(0.58083)
            ret(1082) = dble(0.5894)
            ret(1083) = dble(0.59814)
            ret(1084) = dble(0.57852)
            ret(1085) = dble(0.5933)
            ret(1086) = dble(0.5541)
            ret(1087) = dble(0.56697)
            ret(1088) = dble(0.59317)
            ret(1089) = dble(0.57919)
            ret(1090) = dble(0.55573)
            ret(1091) = dble(0.58835)
            ret(1092) = dble(0.58124)
            ret(1093) = dble(0.51058)
            ret(1094) = dble(0.53965)
            ret(1095) = dble(0.52067)
            ret(1096) = dble(0.50323)
            ret(1097) = dble(0.57852)
            ret(1098) = dble(0.50291)
            ret(1099) = dble(0.50772)
            ret(1100) = dble(0.48577)
            ret(1101) = dble(0.49696)
            ret(1102) = dble(0.46883)
            ret(1103) = dble(0.46637)
            ret(1104) = dble(0.46765)
            ret(1105) = dble(0.50644)
            ret(1106) = dble(0.39792)
            ret(1107) = dble(0.48304)
            ret(1108) = dble(0.41565)
            ret(1109) = dble(0.41278)
            ret(1110) = dble(0.47899)
            ret(1111) = dble(0.33154)
            ret(1112) = dble(0.41357)
            ret(1113) = dble(0.2685)
            ret(1114) = dble(0.29985)
            ret(1115) = dble(0.24987)
            ret(1116) = dble(0.20136)
            ret(1117) = dble(0.079618)
            ret(1118) = dble(0.21753)
            ret(1119) = dble(0.11317)
            ret(1120) = dble(0.14189)
            ret(1121) = dble(0.18586)
            ret(1122) = dble(0.081686)
            ret(1123) = dble(0.12817)
            ret(1124) = dble(0.1087)
            ret(1125) = dble(0.14428)
            ret(1126) = dble(0.051589)
            ret(1127) = dble(0.15725)
            ret(1128) = dble(0.099224)
            ret(1129) = dble(0.10591)
            ret(1130) = dble(0.070574)
            ret(1131) = dble(0.2956)
            ret(1132) = dble(0.23411)
            ret(1133) = dble(0.15331)
            ret(1134) = dble(0.04174)
            ret(1135) = dble(0.015462)
            ret(1136) = dble(0.12876)
            ret(1137) = dble(0.28785)
            ret(1138) = dble(0.20329)
            ret(1139) = dble(0.2985)
            ret(1140) = dble(0.25599)
            ret(1141) = dble(0.19337)
            ret(1142) = dble(0.22479)
            ret(1143) = dble(0.31183)
            ret(1144) = dble(0.11326)
            ret(1145) = dble(0.14604)
            ret(1146) = dble(0.15764)
            ret(1147) = dble(0.059176)
            ret(1148) = dble(0.27113)
            ret(1149) = dble(0.21854)
            ret(1150) = dble(0.12164)
            ret(1151) = dble(0.2034)
            ret(1152) = dble(0.24762)
            ret(1153) = dble(0.23812)
            ret(1154) = dble(0.14248)
            ret(1155) = dble(0.31316)
            ret(1156) = dble(0.2809)
            ret(1157) = dble(0.31458)
            ret(1158) = dble(0.31171)
            ret(1159) = dble(0.33693)
            ret(1160) = dble(0.28648)
            ret(1161) = dble(0.34753)
            ret(1162) = dble(0.35002)
            ret(1163) = dble(0.46857)
            ret(1164) = dble(0.40188)
            ret(1165) = dble(0.3886)
            ret(1166) = dble(0.37494)
            ret(1167) = dble(0.40996)
            ret(1168) = dble(0.41954)
            ret(1169) = dble(0.4231)
            ret(1170) = dble(0.45873)
            ret(1171) = dble(0.44831)
            ret(1172) = dble(0.45483)
            ret(1173) = dble(0.45642)
            ret(1174) = dble(0.33692)
            ret(1175) = dble(0.4524)
            ret(1176) = dble(0.47679)
            ret(1177) = dble(0.47235)
            ret(1178) = dble(0.36)
            ret(1179) = dble(0.48371)
            ret(1180) = dble(0.44069)
            ret(1181) = dble(0.45514)
            ret(1182) = dble(0.32318)
            ret(1183) = dble(0.4387)
            ret(1184) = dble(0.41985)
            ret(1185) = dble(0.40741)
            ret(1186) = dble(0.47715)
            ret(1187) = dble(0.45575)
            ret(1188) = dble(0.33504)
            ret(1189) = dble(0.41569)
            ret(1190) = dble(0.46239)
            ret(1191) = dble(0.4466)
            ret(1192) = dble(0.47336)
            ret(1193) = dble(0.45434)
            ret(1194) = dble(0.4689)
            ret(1195) = dble(0.44696)
            ret(1196) = dble(0.43131)
            ret(1197) = dble(0.47715)
            ret(1198) = dble(0.43392)
            ret(1199) = dble(0.36489)
            ret(1200) = dble(0.44825)
            ret(1201) = dble(0.43708)
            ret(1202) = dble(0.43717)
            ret(1203) = dble(0.43409)
            ret(1204) = dble(0.36247)
            ret(1205) = dble(0.43692)
            ret(1206) = dble(0.48086)
            ret(1207) = dble(0.42986)
            ret(1208) = dble(0.43346)
            ret(1209) = dble(0.41428)
            ret(1210) = dble(0.45336)
            ret(1211) = dble(0.42232)
            ret(1212) = dble(0.42489)
            ret(1213) = dble(0.46956)
            ret(1214) = dble(0.43407)
            ret(1215) = dble(0.4278)
            ret(1216) = dble(0.4664)
            ret(1217) = dble(0.45528)
            ret(1218) = dble(0.45934)
            ret(1219) = dble(0.44663)
            ret(1220) = dble(0.45805)
            ret(1221) = dble(0.46531)
            ret(1222) = dble(0.45139)
            ret(1223) = dble(0.44406)
            ret(1224) = dble(0.44808)
            ret(1225) = dble(0.46236)
            ret(1226) = dble(0.46819)
            ret(1227) = dble(0.43304)
            ret(1228) = dble(0.46658)
            ret(1229) = dble(0.46721)
            ret(1230) = dble(0.46003)
            ret(1231) = dble(0.47203)
            ret(1232) = dble(0.46633)
            ret(1233) = dble(0.45397)
            ret(1234) = dble(0.47016)
            ret(1235) = dble(0.46504)
            ret(1236) = dble(0.46908)
            ret(1237) = dble(0.46339)
            ret(1238) = dble(0.46797)
            ret(1239) = dble(0.46272)
            ret(1240) = dble(0.46077)
            ret(1241) = dble(0.46197)
            ret(1242) = dble(0.46247)
            ret(1243) = dble(0.45754)
            ret(1244) = dble(0.45528)
            ret(1245) = dble(0.45655)
            ret(1246) = dble(0.45945)
            ret(1247) = dble(0.45746)
            ret(1248) = dble(0.4586)
            ret(1249) = dble(0.45966)
            ret(1250) = dble(0.45705)
            ret(1251) = dble(0.45258)
            ret(1252) = dble(0.45097)
            ret(1253) = dble(0.44773)
            ret(1254) = dble(0.44363)
            ret(1255) = dble(0.4507)
            ret(1256) = dble(0.44023)
            ret(1257) = dble(0.43532)
            ret(1258) = dble(0.44496)
            ret(1259) = dble(0.42725)
            ret(1260) = dble(0.4311)
            ret(1261) = dble(0.41146)
            ret(1262) = dble(0.39567)
            ret(1263) = dble(0.40019)
            ret(1264) = dble(0.37148)
            ret(1265) = dble(0.3957)
            ret(1266) = dble(0.38527)
            ret(1267) = dble(0.38822)
            ret(1268) = dble(0.37051)
            ret(1269) = dble(0.24652)
            ret(1270) = dble(0.38744)
            ret(1271) = dble(0.40825)
            ret(1272) = dble(0.40879)
            ret(1273) = dble(0.40625)
            ret(1274) = dble(0.40614)
            ret(1275) = dble(0.41233)
            ret(1276) = dble(0.41693)
            ret(1277) = dble(0.42001)
            ret(1278) = dble(0.42763)
            ret(1279) = dble(0.42456)
            ret(1280) = dble(0.42204)
            ret(1281) = dble(0.41335)
            ret(1282) = dble(0.37305)
            ret(1283) = dble(0.40733)
            ret(1284) = dble(0.42078)
            ret(1285) = dble(0.42399)
            ret(1286) = dble(0.42714)
            ret(1287) = dble(0.42213)
            ret(1288) = dble(0.41989)
            ret(1289) = dble(0.40936)
            ret(1290) = dble(0.41285)
            ret(1291) = dble(0.41786)
            ret(1292) = dble(0.39618)
            ret(1293) = dble(0.41257)
            ret(1294) = dble(0.40421)
            ret(1295) = dble(0.40514)
            ret(1296) = dble(0.38957)
            ret(1297) = dble(0.3713)
            ret(1298) = dble(0.39183)
            ret(1299) = dble(0.40852)
            ret(1300) = dble(0.35312)
            ret(1301) = dble(0.36228)
            ret(1302) = dble(0.39181)
            ret(1303) = dble(0.34621)
            ret(1304) = dble(0.30062)
            ret(1305) = dble(0.38382)
            ret(1306) = dble(0.38453)
            ret(1307) = dble(0.30594)
            ret(1308) = dble(0.34696)
            ret(1309) = dble(0.38413)
            ret(1310) = dble(0.30114)
            ret(1311) = dble(0.33366)
            ret(1312) = dble(0.33337)
            ret(1313) = dble(0.31352)
            ret(1314) = dble(0.28833)
            ret(1315) = dble(0.28581)
            ret(1316) = dble(0.32419)
            ret(1317) = dble(0.31217)
            ret(1318) = dble(0.33328)
            ret(1319) = dble(0.26855)
            ret(1320) = dble(0.25872)
            ret(1321) = dble(0.29866)
            ret(1322) = dble(0.30217)
            ret(1323) = dble(0.23279)
            ret(1324) = dble(0.26249)
            ret(1325) = dble(0.32224)
            ret(1326) = dble(0.28051)
            ret(1327) = dble(0.26625)
            ret(1328) = dble(0.2345)
            ret(1329) = dble(0.17759)
            ret(1330) = dble(0.22923)
            ret(1331) = dble(0.1448)
            ret(1332) = dble(0.14579)
            ret(1333) = dble(0.20304)
            ret(1334) = dble(0.16925)
            ret(1335) = dble(0.23117)
            ret(1336) = dble(0.18348)
            ret(1337) = dble(0.16454)
            ret(1338) = dble(0.17804)
            ret(1339) = dble(0.17681)
            ret(1340) = dble(0.16831)
            ret(1341) = dble(0.17039)
            ret(1342) = dble(0.17798)
            ret(1343) = dble(0.12711)
            ret(1344) = dble(0.075645)
            ret(1345) = dble(0.10904)
            ret(1346) = dble(0.058186)
            ret(1347) = dble(0.060119)
            ret(1348) = dble(0.0047451)
            ret(1349) = dble(0.016159)
            ret(1350) = dble(0.016025)
            ret(1351) = dble(0.0046298)
            ret(1352) = dble(0.0015164)
            ret(1353) = dble(9.6096E-05)
            ret(1354) = dble(0.00029009)
            ret(1355) = dble(3.6034E-06)
            ret(1356) = dble(4.807E-05)
            ret(1357) = dble(7.1786E-05)
            ret(1358) = dble(4.1948E-06)
            ret(1359) = dble(7.3439E-07)
            ret(1360) = dble(2.1404E-06)
            ret(1361) = dble(4.8133E-09)
            ret(1362) = dble(1.8076E-11)
            ret(1363) = dble(3.1563E-06)
            ret(1364) = dble(1.3589E-06)
            ret(1365) = dble(9.0764E-12)
            ret(1366) = dble(1.2791E-05)
            ret(1367) = dble(4.9764E-06)
            ret(1368) = dble(1.481E-13)
            ret(1369) = dble(5.1667E-07)
            ret(1370) = dble(2.92E-07)
            ret(1371) = dble(1.9731E-08)
            ret(1372) = dble(2.7498E-06)
            ret(1373) = dble(4.4401E-05)
            ret(1374) = dble(0.00017917)
            ret(1375) = dble(0.00032332)
            ret(1376) = dble(0.00025748)
            ret(1377) = dble(0.0001227)
            ret(1378) = dble(0.0011089)
            ret(1379) = dble(5.2164E-05)
            ret(1380) = dble(8.1587E-05)
            ret(1381) = dble(2.3716E-06)
            ret(1382) = dble(2.5672E-06)
            ret(1383) = dble(4.4017E-08)
            ret(1384) = dble(6.1689E-07)
            ret(1385) = dble(2.0899E-06)
            ret(1386) = dble(2.5215E-06)
            ret(1387) = dble(0.00019896)
            ret(1388) = dble(4.0262E-06)
            ret(1389) = dble(0.00058098)
            ret(1390) = dble(0.00049328)
            ret(1391) = dble(0.00034384)
            ret(1392) = dble(2.3782E-05)
            ret(1393) = dble(0.00011586)
            ret(1394) = dble(7.5526E-05)
            ret(1395) = dble(6.7136E-07)
            ret(1396) = dble(6.3215E-09)
            ret(1397) = dble(4.9057E-05)
            ret(1398) = dble(0.0012704)
            ret(1399) = dble(0.00081226)
            ret(1400) = dble(3.2466E-09)
            ret(1401) = dble(1.0528E-08)
            ret(1402) = dble(0.0018353)
            ret(1403) = dble(0.00238)
            ret(1404) = dble(0.00073892)
            ret(1405) = dble(3.6444E-07)
            ret(1406) = dble(0.0020448)
            ret(1407) = dble(0.00017457)
            ret(1408) = dble(0.0016493)
            ret(1409) = dble(0.00061919)
            ret(1410) = dble(0.00046653)
            ret(1411) = dble(0.0021142)
            ret(1412) = dble(0.0026396)
            ret(1413) = dble(0.023353)
            ret(1414) = dble(0.00036378)
            ret(1415) = dble(0.00018366)
            ret(1416) = dble(0.035565)
            ret(1417) = dble(0.011759)
            ret(1418) = dble(0.013559)
            ret(1419) = dble(0.0021442)
            ret(1420) = dble(0.0082718)
            ret(1421) = dble(0.0091637)
            ret(1422) = dble(0.046314)
            ret(1423) = dble(0.0092198)
            ret(1424) = dble(0.016975)
            ret(1425) = dble(0.02585)
            ret(1426) = dble(0.027792)
            ret(1427) = dble(0.049546)
            ret(1428) = dble(0.0045588)
            ret(1429) = dble(0.03802)
            ret(1430) = dble(0.061601)
            ret(1431) = dble(0.050156)
            ret(1432) = dble(0.0025194)
            ret(1433) = dble(0.035834)
            ret(1434) = dble(0.020962)
            ret(1435) = dble(0.021416)
            ret(1436) = dble(0.038351)
            ret(1437) = dble(0.02988)
            ret(1438) = dble(0.013263)
            ret(1439) = dble(0.051039)
            ret(1440) = dble(0.039601)
            ret(1441) = dble(0.0318)
            ret(1442) = dble(0.036317)
            ret(1443) = dble(0.045063)
            ret(1444) = dble(0.061791)
            ret(1445) = dble(0.049751)
            ret(1446) = dble(0.023095)
            ret(1447) = dble(0.036215)
            ret(1448) = dble(0.11569)
            ret(1449) = dble(0.10213)
            ret(1450) = dble(0.027412)
            ret(1451) = dble(0.011271)
            ret(1452) = dble(0.062361)
            ret(1453) = dble(0.081978)
            ret(1454) = dble(0.13759)
            ret(1455) = dble(0.06615)
            ret(1456) = dble(0.088509)
            ret(1457) = dble(0.117)
            ret(1458) = dble(0.13643)
            ret(1459) = dble(0.16307)
            ret(1460) = dble(0.085421)
            ret(1461) = dble(0.090276)
            ret(1462) = dble(0.1306)
            ret(1463) = dble(0.043225)
            ret(1464) = dble(0.15184)
            ret(1465) = dble(0.093383)
            ret(1466) = dble(0.065197)
            ret(1467) = dble(0.036054)
            ret(1468) = dble(0.076942)
            ret(1469) = dble(0.094845)
            ret(1470) = dble(0.049678)
            ret(1471) = dble(0.017848)
            ret(1472) = dble(0.046771)
            ret(1473) = dble(0.070198)
            ret(1474) = dble(0.097339)
            ret(1475) = dble(0.18463)
            ret(1476) = dble(0.068778)
            ret(1477) = dble(0.069736)
            ret(1478) = dble(0.06348)
            ret(1479) = dble(0.12001)
            ret(1480) = dble(0.060637)
            ret(1481) = dble(0.11529)
            ret(1482) = dble(0.05849)
            ret(1483) = dble(0.14859)
            ret(1484) = dble(0.13747)
            ret(1485) = dble(0.12503)
            ret(1486) = dble(0.1234)
            ret(1487) = dble(0.060629)
            ret(1488) = dble(0.09418)
            ret(1489) = dble(0.18973)
            ret(1490) = dble(0.17478)
            ret(1491) = dble(0.19778)
            ret(1492) = dble(0.16441)
            ret(1493) = dble(0.18157)
            ret(1494) = dble(0.20367)
            ret(1495) = dble(0.18253)
            ret(1496) = dble(0.16852)
            ret(1497) = dble(0.2285)
            ret(1498) = dble(0.18968)
            ret(1499) = dble(0.21759)
            ret(1500) = dble(0.25061)
            ret(1501) = dble(0.26552)
            ret(1502) = dble(0.23356)
            ret(1503) = dble(0.18493)
            ret(1504) = dble(0.16029)
            ret(1505) = dble(0.18402)
            ret(1506) = dble(0.25773)
            ret(1507) = dble(0.25514)
            ret(1508) = dble(0.24302)
            ret(1509) = dble(0.1869)
            ret(1510) = dble(0.27052)
            ret(1511) = dble(0.26474)
            ret(1512) = dble(0.26068)
            ret(1513) = dble(0.24239)
            ret(1514) = dble(0.22571)
            ret(1515) = dble(0.26573)
            ret(1516) = dble(0.25683)
            ret(1517) = dble(0.24929)
            ret(1518) = dble(0.25211)
            ret(1519) = dble(0.24437)
            ret(1520) = dble(0.2645)
            ret(1521) = dble(0.27505)
            ret(1522) = dble(0.26378)
            ret(1523) = dble(0.28004)
            ret(1524) = dble(0.27539)
            ret(1525) = dble(0.25884)
            ret(1526) = dble(0.26745)
            ret(1527) = dble(0.2622)
            ret(1528) = dble(0.27928)
            ret(1529) = dble(0.27244)
            ret(1530) = dble(0.25522)
            ret(1531) = dble(0.26973)
            ret(1532) = dble(0.27839)
            ret(1533) = dble(0.27714)
            ret(1534) = dble(0.26892)
            ret(1535) = dble(0.26686)
            ret(1536) = dble(0.27464)
            ret(1537) = dble(0.27336)
            ret(1538) = dble(0.27202)
            ret(1539) = dble(0.27295)
            ret(1540) = dble(0.26491)
            ret(1541) = dble(0.26904)
            ret(1542) = dble(0.26927)
            ret(1543) = dble(0.27208)
            ret(1544) = dble(0.2721)
            ret(1545) = dble(0.27705)
            ret(1546) = dble(0.27481)
            ret(1547) = dble(0.27309)
            ret(1548) = dble(0.26675)
            ret(1549) = dble(0.27342)
            ret(1550) = dble(0.2699)
            ret(1551) = dble(0.27058)
            ret(1552) = dble(0.27182)
            ret(1553) = dble(0.27132)
            ret(1554) = dble(0.26474)
            ret(1555) = dble(0.26759)
            ret(1556) = dble(0.2631)
            ret(1557) = dble(0.27062)
            ret(1558) = dble(0.26848)
            ret(1559) = dble(0.26808)
            ret(1560) = dble(0.26568)
            ret(1561) = dble(0.27002)
            ret(1562) = dble(0.26756)
            ret(1563) = dble(0.26667)
            ret(1564) = dble(0.26264)
            ret(1565) = dble(0.26728)
            ret(1566) = dble(0.26245)
            ret(1567) = dble(0.26308)
            ret(1568) = dble(0.25722)
            ret(1569) = dble(0.25452)
            ret(1570) = dble(0.24175)
            ret(1571) = dble(0.23507)
            ret(1572) = dble(0.23775)
            ret(1573) = dble(0.23407)
            ret(1574) = dble(0.24145)
            ret(1575) = dble(0.23974)
            ret(1576) = dble(0.24678)
            ret(1577) = dble(0.21602)
            ret(1578) = dble(0.23516)
            ret(1579) = dble(0.23672)
            ret(1580) = dble(0.24464)
            ret(1581) = dble(0.2487)
            ret(1582) = dble(0.24195)
            ret(1583) = dble(0.24755)
            ret(1584) = dble(0.24904)
            ret(1585) = dble(0.25874)
            ret(1586) = dble(0.25569)
            ret(1587) = dble(0.25303)
            ret(1588) = dble(0.25107)
            ret(1589) = dble(0.23233)
            ret(1590) = dble(0.24179)
            ret(1591) = dble(0.24197)
            ret(1592) = dble(0.25225)
            ret(1593) = dble(0.25833)
            ret(1594) = dble(0.25624)
            ret(1595) = dble(0.25823)
            ret(1596) = dble(0.24452)
            ret(1597) = dble(0.24692)
            ret(1598) = dble(0.25421)
            ret(1599) = dble(0.24202)
            ret(1600) = dble(0.2381)
            ret(1601) = dble(0.22323)
            ret(1602) = dble(0.22413)
            ret(1603) = dble(0.22397)
            ret(1604) = dble(0.22842)
            ret(1605) = dble(0.23683)
            ret(1606) = dble(0.2414)
            ret(1607) = dble(0.23296)
            ret(1608) = dble(0.2299)
            ret(1609) = dble(0.22727)
            ret(1610) = dble(0.2176)
            ret(1611) = dble(0.2268)
            ret(1612) = dble(0.23076)
            ret(1613) = dble(0.23719)
            ret(1614) = dble(0.23838)
            ret(1615) = dble(0.24104)
            ret(1616) = dble(0.2305)
            ret(1617) = dble(0.23465)
            ret(1618) = dble(0.24352)
            ret(1619) = dble(0.241)
            ret(1620) = dble(0.23449)
            ret(1621) = dble(0.2343)
            ret(1622) = dble(0.23754)
            ret(1623) = dble(0.24246)
            ret(1624) = dble(0.24269)
            ret(1625) = dble(0.23782)
            ret(1626) = dble(0.23971)
            ret(1627) = dble(0.24078)
            ret(1628) = dble(0.24126)
            ret(1629) = dble(0.24137)
            ret(1630) = dble(0.23651)
            ret(1631) = dble(0.23806)
            ret(1632) = dble(0.23821)
            ret(1633) = dble(0.23267)
            ret(1634) = dble(0.23282)
            ret(1635) = dble(0.23367)
            ret(1636) = dble(0.23539)
            ret(1637) = dble(0.227)
            ret(1638) = dble(0.22007)
            ret(1639) = dble(0.22026)
            ret(1640) = dble(0.21511)
            ret(1641) = dble(0.2196)
            ret(1642) = dble(0.22082)
            ret(1643) = dble(0.21535)
            ret(1644) = dble(0.22355)
            ret(1645) = dble(0.21822)
            ret(1646) = dble(0.21749)
            ret(1647) = dble(0.22768)
            ret(1648) = dble(0.21655)
            ret(1649) = dble(0.21867)
            ret(1650) = dble(0.22526)
            ret(1651) = dble(0.20855)
            ret(1652) = dble(0.22373)
            ret(1653) = dble(0.22277)
            ret(1654) = dble(0.21583)
            ret(1655) = dble(0.22231)
            ret(1656) = dble(0.22101)
            ret(1657) = dble(0.22223)
            ret(1658) = dble(0.22487)
            ret(1659) = dble(0.2212)
            ret(1660) = dble(0.22332)
            ret(1661) = dble(0.22384)
            ret(1662) = dble(0.21908)
            ret(1663) = dble(0.22235)
            ret(1664) = dble(0.22098)
            ret(1665) = dble(0.21178)
            ret(1666) = dble(0.17884)
            ret(1667) = dble(0.21068)
            ret(1668) = dble(0.21459)
            ret(1669) = dble(0.21516)
            ret(1670) = dble(0.22168)
            ret(1671) = dble(0.21879)
            ret(1672) = dble(0.21147)
            ret(1673) = dble(0.21629)
            ret(1674) = dble(0.21575)
            ret(1675) = dble(0.2136)
            ret(1676) = dble(0.21145)
            ret(1677) = dble(0.21229)
            ret(1678) = dble(0.20915)
            ret(1679) = dble(0.21303)
            ret(1680) = dble(0.20558)
            ret(1681) = dble(0.19447)
            ret(1682) = dble(0.20366)
            ret(1683) = dble(0.20906)
            ret(1684) = dble(0.19797)
            ret(1685) = dble(0.21321)
            ret(1686) = dble(0.21026)
            ret(1687) = dble(0.20484)
            ret(1688) = dble(0.21013)
            ret(1689) = dble(0.20718)
            ret(1690) = dble(0.20523)
            ret(1691) = dble(0.19303)
            ret(1692) = dble(0.20708)
            ret(1693) = dble(0.21134)
            ret(1694) = dble(0.20477)
            ret(1695) = dble(0.20968)
            ret(1696) = dble(0.20922)
            ret(1697) = dble(0.18107)
            ret(1698) = dble(0.20739)
            ret(1699) = dble(0.20551)
            ret(1700) = dble(0.19975)
            ret(1702) = dble(0.20396)
            ret(1705) = dble(0.19778)
            ret(1710) = dble(0.1879)
            ret(1715) = dble(0.18965)
            ret(1720) = dble(0.18698)
            ret(1725) = dble(0.17808)
            ret(1730) = dble(0.17407)
            ret(1735) = dble(0.16154)
            ret(1740) = dble(0.16818)
            ret(1745) = dble(0.15481)
            ret(1750) = dble(0.16566)
            ret(1755) = dble(0.15301)
            ret(1760) = dble(0.15998)
            ret(1765) = dble(0.13284)
            ret(1770) = dble(0.14172)
            ret(1775) = dble(0.11484)
            ret(1780) = dble(0.1005)
            ret(1785) = dble(0.076981)
            ret(1790) = dble(0.088904)
            ret(1795) = dble(0.046931)
            ret(1800) = dble(0.031828)
            ret(1805) = dble(0.014815)
            ret(1810) = dble(0.0096911)
            ret(1815) = dble(0.0032816)
            ret(1820) = dble(0.00098755)
            ret(1825) = dble(0.0012744)
            ret(1830) = dble(5.2041E-06)
            ret(1835) = dble(6.419E-06)
            ret(1840) = dble(6.2703E-08)
            ret(1845) = dble(6.2658E-06)
            ret(1850) = dble(2.9993E-06)
            ret(1855) = dble(2.8396E-07)
            ret(1860) = dble(1.1151E-05)
            ret(1865) = dble(1.6982E-05)
            ret(1870) = dble(2.6662E-10)
            ret(1875) = dble(4.513E-10)
            ret(1880) = dble(7.7505E-05)
            ret(1885) = dble(4.389E-05)
            ret(1890) = dble(0.00022333)
            ret(1895) = dble(0.00012947)
            ret(1900) = dble(8.6221E-07)
            ret(1905) = dble(5.6667E-07)
            ret(1910) = dble(2.3045E-05)
            ret(1915) = dble(1.9947E-05)
            ret(1920) = dble(0.00045069)
            ret(1925) = dble(0.00093615)
            ret(1930) = dble(0.00055242)
            ret(1935) = dble(0.0035935)
            ret(1940) = dble(0.0032821)
            ret(1945) = dble(0.010863)
            ret(1950) = dble(0.016727)
            ret(1955) = dble(0.010036)
            ret(1960) = dble(0.021906)
            ret(1965) = dble(0.028563)
            ret(1970) = dble(0.048847)
            ret(1975) = dble(0.067857)
            ret(1980) = dble(0.075512)
            ret(1985) = dble(0.083063)
            ret(1990) = dble(0.085613)
            ret(1995) = dble(0.08119)
            ret(2000) = dble(0.038156)
            ret(2005) = dble(0.015001)
            ret(2010) = dble(0.039748)
            ret(2015) = dble(0.026648)
            ret(2020) = dble(0.044981)
            ret(2025) = dble(0.07401)
            ret(2030) = dble(0.084856)
            ret(2035) = dble(0.096386)
            ret(2040) = dble(0.089781)
            ret(2045) = dble(0.091074)
            return
         end if
      end if

      ret(280) = dble(2.5361E-26)
      ret(281) = dble(6.1253E-24)
      ret(282) = dble(2.8346E-21)
      ret(283) = dble(6.7646E-20)
      ret(284) = dble(4.9838E-18)
      ret(285) = dble(8.9998E-17)
      ret(286) = dble(2.3503E-15)
      ret(287) = dble(7.2547E-14)
      ret(288) = dble(2.8061E-12)
      ret(289) = dble(3.4978E-11)
      ret(290) = dble(5.1454E-10)
      ret(291) = dble(3.8965E-09)
      ret(292) = dble(4.0789E-08)
      ret(293) = dble(1.576E-07)
      ret(294) = dble(9.4558E-07)
      ret(295) = dble(3.2246E-06)
      ret(296) = dble(1.4737E-05)
      ret(297) = dble(3.3187E-05)
      ret(298) = dble(0.00011127)
      ret(299) = dble(0.00020323)
      ret(300) = dble(0.00045631)
      ret(301) = dble(0.00091926)
      ret(302) = dble(0.001457)
      ret(303) = dble(0.0037332)
      ret(304) = dble(0.0050973)
      ret(305) = dble(0.0089336)
      ret(306) = dble(0.01015)
      ret(307) = dble(0.015246)
      ret(308) = dble(0.020753)
      ret(309) = dble(0.022298)
      ret(310) = dble(0.027826)
      ret(311) = dble(0.045392)
      ret(312) = dble(0.050898)
      ret(313) = dble(0.058323)
      ret(314) = dble(0.065266)
      ret(315) = dble(0.073686)
      ret(316) = dble(0.067088)
      ret(317) = dble(0.09302)
      ret(318) = dble(0.095815)
      ret(319) = dble(0.10971)
      ret(320) = dble(0.11277)
      ret(321) = dble(0.13414)
      ret(322) = dble(0.122)
      ret(323) = dble(0.11623)
      ret(324) = dble(0.14852)
      ret(325) = dble(0.15504)
      ret(326) = dble(0.20868)
      ret(327) = dble(0.21834)
      ret(328) = dble(0.19773)
      ret(329) = dble(0.23297)
      ret(330) = dble(0.26192)
      ret(331) = dble(0.22835)
      ret(332) = dble(0.24508)
      ret(333) = dble(0.24263)
      ret(334) = dble(0.23823)
      ret(335) = dble(0.26477)
      ret(336) = dble(0.23813)
      ret(337) = dble(0.21767)
      ret(338) = dble(0.25321)
      ret(339) = dble(0.27096)
      ret(340) = dble(0.29659)
      ret(341) = dble(0.27932)
      ret(342) = dble(0.29121)
      ret(343) = dble(0.30857)
      ret(344) = dble(0.25352)
      ret(345) = dble(0.27854)
      ret(346) = dble(0.29132)
      ret(347) = dble(0.30318)
      ret(348) = dble(0.29306)
      ret(349) = dble(0.28864)
      ret(350) = dble(0.32913)
      ret(351) = dble(0.34603)
      ret(352) = dble(0.32674)
      ret(353) = dble(0.32975)
      ret(354) = dble(0.38523)
      ret(355) = dble(0.3914)
      ret(356) = dble(0.35627)
      ret(357) = dble(0.29527)
      ret(358) = dble(0.27936)
      ret(359) = dble(0.3065)
      ret(360) = dble(0.3924)
      ret(361) = dble(0.34278)
      ret(362) = dble(0.3535)
      ret(363) = dble(0.40005)
      ret(364) = dble(0.40472)
      ret(365) = dble(0.4181)
      ret(366) = dble(0.49508)
      ret(367) = dble(0.48869)
      ret(368) = dble(0.45319)
      ret(369) = dble(0.47244)
      ret(370) = dble(0.51666)
      ret(371) = dble(0.47628)
      ret(372) = dble(0.46506)
      ret(373) = dble(0.42833)
      ret(374) = dble(0.38651)
      ret(375) = dble(0.41087)
      ret(376) = dble(0.47218)
      ret(377) = dble(0.50014)
      ret(378) = dble(0.60314)
      ret(379) = dble(0.52616)
      ret(380) = dble(0.49751)
      ret(381) = dble(0.54424)
      ret(382) = dble(0.41958)
      ret(383) = dble(0.32648)
      ret(384) = dble(0.36689)
      ret(385) = dble(0.48638)
      ret(386) = dble(0.44984)
      ret(387) = dble(0.47343)
      ret(388) = dble(0.4635)
      ret(389) = dble(0.50121)
      ret(390) = dble(0.58457)
      ret(391) = dble(0.62634)
      ret(392) = dble(0.58656)
      ret(393) = dble(0.35502)
      ret(394) = dble(0.3678)
      ret(395) = dble(0.60096)
      ret(396) = dble(0.56443)
      ret(397) = dble(0.31882)
      ret(398) = dble(0.63944)
      ret(399) = dble(0.80408)
      ret(400) = dble(0.83989)
      ret(401) = dble(0.87691)
      ret(402) = dble(0.91387)
      ret(403) = dble(0.88211)
      ret(404) = dble(0.89849)
      ret(405) = dble(0.87849)
      ret(406) = dble(0.85878)
      ret(407) = dble(0.84545)
      ret(408) = dble(0.88488)
      ret(409) = dble(0.94717)
      ret(410) = dble(0.8091)
      ret(411) = dble(0.9077)
      ret(412) = dble(0.96686)
      ret(413) = dble(0.92951)
      ret(414) = dble(0.92134)
      ret(415) = dble(0.95569)
      ret(416) = dble(0.98628)
      ret(417) = dble(0.96392)
      ret(418) = dble(0.92392)
      ret(419) = dble(0.96354)
      ret(420) = dble(0.88467)
      ret(421) = dble(1.0067)
      ret(422) = dble(0.99499)
      ret(423) = dble(0.96531)
      ret(424) = dble(0.96182)
      ret(425) = dble(0.99312)
      ret(426) = dble(0.96667)
      ret(427) = dble(0.9355)
      ret(428) = dble(0.94625)
      ret(429) = dble(0.87766)
      ret(430) = dble(0.70134)
      ret(431) = dble(0.63779)
      ret(432) = dble(1.0628)
      ret(433) = dble(0.9905)
      ret(434) = dble(0.91653)
      ret(435) = dble(1.007)
      ret(436) = dble(1.1061)
      ret(437) = dble(1.1306)
      ret(438) = dble(0.99368)
      ret(439) = dble(0.95753)
      ret(440) = dble(1.0993)
      ret(441) = dble(1.0859)
      ret(442) = dble(1.164)
      ret(443) = dble(1.1823)
      ret(444) = dble(1.1537)
      ret(445) = dble(1.1992)
      ret(446) = dble(1.0766)
      ret(447) = dble(1.2257)
      ret(448) = dble(1.2422)
      ret(449) = dble(1.2409)
      ret(450) = dble(1.2881)
      ret(451) = dble(1.3376)
      ret(452) = dble(1.2822)
      ret(453) = dble(1.1854)
      ret(454) = dble(1.273)
      ret(455) = dble(1.2655)
      ret(456) = dble(1.3088)
      ret(457) = dble(1.3213)
      ret(458) = dble(1.2946)
      ret(459) = dble(1.2859)
      ret(460) = dble(1.2791)
      ret(461) = dble(1.3255)
      ret(462) = dble(1.3392)
      ret(463) = dble(1.3452)
      ret(464) = dble(1.3055)
      ret(465) = dble(1.2905)
      ret(466) = dble(1.319)
      ret(467) = dble(1.2616)
      ret(468) = dble(1.3178)
      ret(469) = dble(1.3247)
      ret(470) = dble(1.2749)
      ret(471) = dble(1.2975)
      ret(472) = dble(1.3661)
      ret(473) = dble(1.3144)
      ret(474) = dble(1.3304)
      ret(475) = dble(1.3755)
      ret(476) = dble(1.3299)
      ret(477) = dble(1.3392)
      ret(478) = dble(1.3839)
      ret(479) = dble(1.3586)
      ret(480) = dble(1.3825)
      ret(481) = dble(1.3836)
      ret(482) = dble(1.3899)
      ret(483) = dble(1.3742)
      ret(484) = dble(1.3492)
      ret(485) = dble(1.3457)
      ret(486) = dble(1.0918)
      ret(487) = dble(1.2235)
      ret(488) = dble(1.3252)
      ret(489) = dble(1.2492)
      ret(490) = dble(1.3968)
      ret(491) = dble(1.3435)
      ret(492) = dble(1.2818)
      ret(493) = dble(1.3719)
      ret(494) = dble(1.3402)
      ret(495) = dble(1.4238)
      ret(496) = dble(1.3548)
      ret(497) = dble(1.3788)
      ret(498) = dble(1.3421)
      ret(499) = dble(1.3429)
      ret(500) = dble(1.3391)
      ret(501) = dble(1.299)
      ret(502) = dble(1.2991)
      ret(503) = dble(1.3597)
      ret(504) = dble(1.2682)
      ret(505) = dble(1.3598)
      ret(506) = dble(1.4153)
      ret(507) = dble(1.3548)
      ret(508) = dble(1.321)
      ret(509) = dble(1.385)
      ret(510) = dble(1.3497)
      ret(511) = dble(1.3753)
      ret(512) = dble(1.4125)
      ret(513) = dble(1.3277)
      ret(514) = dble(1.3003)
      ret(515) = dble(1.3385)
      ret(516) = dble(1.3514)
      ret(517) = dble(1.1017)
      ret(518) = dble(1.2605)
      ret(519) = dble(1.2222)
      ret(520) = dble(1.3349)
      ret(521) = dble(1.3452)
      ret(522) = dble(1.376)
      ret(523) = dble(1.2976)
      ret(524) = dble(1.3962)
      ret(525) = dble(1.3859)
      ret(526) = dble(1.3479)
      ret(527) = dble(1.1795)
      ret(528) = dble(1.3508)
      ret(529) = dble(1.4142)
      ret(530) = dble(1.3598)
      ret(531) = dble(1.4348)
      ret(532) = dble(1.4094)
      ret(533) = dble(1.259)
      ret(534) = dble(1.3491)
      ret(535) = dble(1.3701)
      ret(536) = dble(1.4292)
      ret(537) = dble(1.3229)
      ret(538) = dble(1.3896)
      ret(539) = dble(1.3558)
      ret(540) = dble(1.3096)
      ret(541) = dble(1.2595)
      ret(542) = dble(1.3714)
      ret(543) = dble(1.3493)
      ret(544) = dble(1.3971)
      ret(545) = dble(1.3657)
      ret(546) = dble(1.3536)
      ret(547) = dble(1.3717)
      ret(548) = dble(1.3331)
      ret(549) = dble(1.3752)
      ret(550) = dble(1.3648)
      ret(551) = dble(1.3639)
      ret(552) = dble(1.3923)
      ret(553) = dble(1.3533)
      ret(554) = dble(1.3802)
      ret(555) = dble(1.3883)
      ret(556) = dble(1.3651)
      ret(557) = dble(1.3321)
      ret(558) = dble(1.3613)
      ret(559) = dble(1.2885)
      ret(560) = dble(1.3118)
      ret(561) = dble(1.3885)
      ret(562) = dble(1.3225)
      ret(563) = dble(1.3731)
      ret(564) = dble(1.3466)
      ret(565) = dble(1.3555)
      ret(566) = dble(1.2823)
      ret(567) = dble(1.3673)
      ret(568) = dble(1.3554)
      ret(569) = dble(1.3228)
      ret(570) = dble(1.324)
      ret(571) = dble(1.281)
      ret(572) = dble(1.3534)
      ret(573) = dble(1.3595)
      ret(574) = dble(1.3527)
      ret(575) = dble(1.3225)
      ret(576) = dble(1.3118)
      ret(577) = dble(1.3452)
      ret(578) = dble(1.304)
      ret(579) = dble(1.323)
      ret(580) = dble(1.3455)
      ret(581) = dble(1.3518)
      ret(582) = dble(1.3729)
      ret(583) = dble(1.3872)
      ret(584) = dble(1.3845)
      ret(585) = dble(1.3737)
      ret(586) = dble(1.3409)
      ret(587) = dble(1.3708)
      ret(588) = dble(1.3403)
      ret(589) = dble(1.1582)
      ret(590) = dble(1.2316)
      ret(591) = dble(1.3171)
      ret(592) = dble(1.29)
      ret(593) = dble(1.3086)
      ret(594) = dble(1.3029)
      ret(595) = dble(1.287)
      ret(596) = dble(1.326)
      ret(597) = dble(1.3303)
      ret(598) = dble(1.3142)
      ret(599) = dble(1.3145)
      ret(600) = dble(1.3278)
      ret(601) = dble(1.3123)
      ret(602) = dble(1.2928)
      ret(603) = dble(1.3205)
      ret(604) = dble(1.3439)
      ret(605) = dble(1.3418)
      ret(606) = dble(1.3353)
      ret(607) = dble(1.3434)
      ret(608) = dble(1.3392)
      ret(609) = dble(1.3292)
      ret(610) = dble(1.3237)
      ret(611) = dble(1.317)
      ret(612) = dble(1.337)
      ret(613) = dble(1.3182)
      ret(614) = dble(1.2783)
      ret(615) = dble(1.3254)
      ret(616) = dble(1.2906)
      ret(617) = dble(1.2744)
      ret(618) = dble(1.3228)
      ret(619) = dble(1.3292)
      ret(620) = dble(1.3299)
      ret(621) = dble(1.3359)
      ret(622) = dble(1.2882)
      ret(623) = dble(1.2793)
      ret(624) = dble(1.2751)
      ret(625) = dble(1.2667)
      ret(626) = dble(1.2655)
      ret(627) = dble(1.3022)
      ret(628) = dble(1.2328)
      ret(629) = dble(1.2758)
      ret(630) = dble(1.2589)
      ret(631) = dble(1.2799)
      ret(632) = dble(1.2327)
      ret(633) = dble(1.311)
      ret(634) = dble(1.2907)
      ret(635) = dble(1.3065)
      ret(636) = dble(1.2768)
      ret(637) = dble(1.3204)
      ret(638) = dble(1.3292)
      ret(639) = dble(1.3238)
      ret(640) = dble(1.2962)
      ret(641) = dble(1.297)
      ret(642) = dble(1.2995)
      ret(643) = dble(1.313)
      ret(644) = dble(1.3074)
      ret(645) = dble(1.317)
      ret(646) = dble(1.2797)
      ret(647) = dble(1.2744)
      ret(648) = dble(1.2625)
      ret(649) = dble(1.2234)
      ret(650) = dble(1.2299)
      ret(651) = dble(1.3071)
      ret(652) = dble(1.2558)
      ret(653) = dble(1.295)
      ret(654) = dble(1.2807)
      ret(655) = dble(1.222)
      ret(656) = dble(1.0727)
      ret(657) = dble(1.1218)
      ret(658) = dble(1.254)
      ret(659) = dble(1.2586)
      ret(660) = dble(1.2668)
      ret(661) = dble(1.2618)
      ret(662) = dble(1.2518)
      ret(663) = dble(1.2539)
      ret(664) = dble(1.2647)
      ret(665) = dble(1.2871)
      ret(666) = dble(1.286)
      ret(667) = dble(1.2767)
      ret(668) = dble(1.281)
      ret(669) = dble(1.3032)
      ret(670) = dble(1.2853)
      ret(671) = dble(1.2829)
      ret(672) = dble(1.2651)
      ret(673) = dble(1.276)
      ret(674) = dble(1.2742)
      ret(675) = dble(1.2639)
      ret(676) = dble(1.2786)
      ret(677) = dble(1.2669)
      ret(678) = dble(1.2737)
      ret(679) = dble(1.2629)
      ret(680) = dble(1.265)
      ret(681) = dble(1.2601)
      ret(682) = dble(1.2662)
      ret(683) = dble(1.2526)
      ret(684) = dble(1.2445)
      ret(685) = dble(1.2454)
      ret(686) = dble(1.2174)
      ret(687) = dble(0.88285)
      ret(688) = dble(1.0195)
      ret(689) = dble(1.026)
      ret(690) = dble(1.0746)
      ret(691) = dble(1.1201)
      ret(692) = dble(1.1516)
      ret(693) = dble(1.1446)
      ret(694) = dble(1.1318)
      ret(695) = dble(1.1538)
      ret(696) = dble(1.1513)
      ret(697) = dble(1.2151)
      ret(698) = dble(1.1961)
      ret(699) = dble(1.1721)
      ret(700) = dble(1.1636)
      ret(701) = dble(1.1489)
      ret(702) = dble(1.15)
      ret(703) = dble(1.1567)
      ret(704) = dble(1.1864)
      ret(705) = dble(1.1989)
      ret(706) = dble(1.1925)
      ret(707) = dble(1.1875)
      ret(708) = dble(1.1839)
      ret(709) = dble(1.188)
      ret(710) = dble(1.1954)
      ret(711) = dble(1.1934)
      ret(712) = dble(1.1856)
      ret(713) = dble(1.1719)
      ret(714) = dble(1.1823)
      ret(715) = dble(1.1428)
      ret(716) = dble(1.1548)
      ret(717) = dble(1.0081)
      ret(718) = dble(0.93873)
      ret(719) = dble(0.84274)
      ret(720) = dble(0.8994)
      ret(721) = dble(0.98967)
      ret(722) = dble(1.1281)
      ret(723) = dble(1.0423)
      ret(724) = dble(0.96305)
      ret(725) = dble(0.94741)
      ret(726) = dble(0.98638)
      ret(727) = dble(0.98988)
      ret(728) = dble(0.94968)
      ret(729) = dble(0.95503)
      ret(730) = dble(1.0294)
      ret(731) = dble(0.97702)
      ret(732) = dble(1.052)
      ret(733) = dble(1.0901)
      ret(734) = dble(1.1261)
      ret(735) = dble(1.1101)
      ret(736) = dble(1.0994)
      ret(737) = dble(1.0978)
      ret(738) = dble(1.1184)
      ret(739) = dble(1.0855)
      ret(740) = dble(1.1119)
      ret(741) = dble(1.1078)
      ret(742) = dble(1.1084)
      ret(743) = dble(1.1316)
      ret(744) = dble(1.1408)
      ret(745) = dble(1.1404)
      ret(746) = dble(1.1381)
      ret(747) = dble(1.1389)
      ret(748) = dble(1.1323)
      ret(749) = dble(1.1286)
      ret(750) = dble(1.1273)
      ret(751) = dble(1.1224)
      ret(752) = dble(1.1265)
      ret(753) = dble(1.121)
      ret(754) = dble(1.1353)
      ret(755) = dble(1.1321)
      ret(756) = dble(1.1185)
      ret(757) = dble(1.1176)
      ret(758) = dble(1.1246)
      ret(759) = dble(1.0932)
      ret(760) = dble(0.24716)
      ret(761) = dble(0.14328)
      ret(762) = dble(0.63491)
      ret(763) = dble(0.35217)
      ret(764) = dble(0.49885)
      ret(765) = dble(0.63377)
      ret(766) = dble(0.7508)
      ret(767) = dble(0.89574)
      ret(768) = dble(1.0222)
      ret(769) = dble(1.0347)
      ret(770) = dble(1.0646)
      ret(771) = dble(1.0716)
      ret(772) = dble(1.0802)
      ret(773) = dble(1.0797)
      ret(774) = dble(1.08)
      ret(775) = dble(1.0801)
      ret(776) = dble(1.0827)
      ret(777) = dble(1.0764)
      ret(778) = dble(1.0754)
      ret(779) = dble(1.0803)
      ret(780) = dble(1.0687)
      ret(781) = dble(1.0662)
      ret(782) = dble(1.0714)
      ret(783) = dble(1.0672)
      ret(784) = dble(1.0602)
      ret(785) = dble(1.0649)
      ret(786) = dble(1.0656)
      ret(787) = dble(1.053)
      ret(788) = dble(1.0399)
      ret(789) = dble(1.0359)
      ret(790) = dble(1.0045)
      ret(791) = dble(1.0179)
      ret(792) = dble(1.0084)
      ret(793) = dble(1.0015)
      ret(794) = dble(1.0101)
      ret(795) = dble(1.0066)
      ret(796) = dble(0.98985)
      ret(797) = dble(1.0057)
      ret(798) = dble(1.0245)
      ret(799) = dble(1.0048)
      ret(800) = dble(0.98859)
      ret(801) = dble(0.99978)
      ret(802) = dble(1.0011)
      ret(803) = dble(0.98288)
      ret(804) = dble(0.99452)
      ret(805) = dble(0.9727)
      ret(806) = dble(1.0122)
      ret(807) = dble(1.0018)
      ret(808) = dble(0.99844)
      ret(809) = dble(0.97353)
      ret(810) = dble(0.97488)
      ret(811) = dble(0.97273)
      ret(812) = dble(0.94882)
      ret(813) = dble(0.93236)
      ret(814) = dble(0.83681)
      ret(815) = dble(0.82927)
      ret(816) = dble(0.77171)
      ret(817) = dble(0.78984)
      ret(818) = dble(0.76299)
      ret(819) = dble(0.83844)
      ret(820) = dble(0.79899)
      ret(821) = dble(0.92292)
      ret(822) = dble(0.88081)
      ret(823) = dble(0.62576)
      ret(824) = dble(0.86619)
      ret(825) = dble(0.89752)
      ret(826) = dble(0.8653)
      ret(827) = dble(0.91178)
      ret(828) = dble(0.7887)
      ret(829) = dble(0.86135)
      ret(830) = dble(0.8493)
      ret(831) = dble(0.85666)
      ret(832) = dble(0.82961)
      ret(833) = dble(0.88622)
      ret(834) = dble(0.86608)
      ret(835) = dble(0.92917)
      ret(836) = dble(0.90135)
      ret(837) = dble(0.93493)
      ret(838) = dble(0.92585)
      ret(839) = dble(0.92783)
      ret(840) = dble(0.94124)
      ret(841) = dble(0.93626)
      ret(842) = dble(0.92411)
      ret(843) = dble(0.93171)
      ret(844) = dble(0.91434)
      ret(845) = dble(0.94226)
      ret(846) = dble(0.94447)
      ret(847) = dble(0.91947)
      ret(848) = dble(0.9201)
      ret(849) = dble(0.91447)
      ret(850) = dble(0.829)
      ret(851) = dble(0.90454)
      ret(852) = dble(0.89942)
      ret(853) = dble(0.8954)
      ret(854) = dble(0.79)
      ret(855) = dble(0.84746)
      ret(856) = dble(0.90343)
      ret(857) = dble(0.92059)
      ret(858) = dble(0.92094)
      ret(859) = dble(0.92081)
      ret(860) = dble(0.91764)
      ret(861) = dble(0.91648)
      ret(862) = dble(0.92367)
      ret(863) = dble(0.92934)
      ret(864) = dble(0.90956)
      ret(865) = dble(0.89487)
      ret(866) = dble(0.78882)
      ret(867) = dble(0.85066)
      ret(868) = dble(0.8914)
      ret(869) = dble(0.88252)
      ret(870) = dble(0.89933)
      ret(871) = dble(0.88671)
      ret(872) = dble(0.89887)
      ret(873) = dble(0.88999)
      ret(874) = dble(0.87451)
      ret(875) = dble(0.86204)
      ret(876) = dble(0.88625)
      ret(877) = dble(0.88948)
      ret(878) = dble(0.88607)
      ret(879) = dble(0.87144)
      ret(880) = dble(0.87434)
      ret(881) = dble(0.84563)
      ret(882) = dble(0.86787)
      ret(883) = dble(0.86494)
      ret(884) = dble(0.86859)
      ret(885) = dble(0.87913)
      ret(886) = dble(0.84515)
      ret(887) = dble(0.84799)
      ret(888) = dble(0.85899)
      ret(889) = dble(0.87041)
      ret(890) = dble(0.86078)
      ret(891) = dble(0.86255)
      ret(892) = dble(0.84688)
      ret(893) = dble(0.81412)
      ret(894) = dble(0.79413)
      ret(895) = dble(0.75956)
      ret(896) = dble(0.71265)
      ret(897) = dble(0.6231)
      ret(898) = dble(0.67137)
      ret(899) = dble(0.51461)
      ret(900) = dble(0.69429)
      ret(901) = dble(0.56162)
      ret(902) = dble(0.625)
      ret(903) = dble(0.64483)
      ret(904) = dble(0.78862)
      ret(905) = dble(0.76337)
      ret(906) = dble(0.72502)
      ret(907) = dble(0.59833)
      ret(908) = dble(0.61091)
      ret(909) = dble(0.65912)
      ret(910) = dble(0.58553)
      ret(911) = dble(0.6258)
      ret(912) = dble(0.64508)
      ret(913) = dble(0.58906)
      ret(914) = dble(0.5874)
      ret(915) = dble(0.6355)
      ret(916) = dble(0.54099)
      ret(917) = dble(0.6835)
      ret(918) = dble(0.55612)
      ret(919) = dble(0.69161)
      ret(920) = dble(0.69657)
      ret(921) = dble(0.73004)
      ret(922) = dble(0.65584)
      ret(923) = dble(0.69698)
      ret(924) = dble(0.67571)
      ret(925) = dble(0.66621)
      ret(926) = dble(0.65875)
      ret(927) = dble(0.73684)
      ret(928) = dble(0.55363)
      ret(929) = dble(0.51792)
      ret(930) = dble(0.40679)
      ret(931) = dble(0.3854)
      ret(932) = dble(0.28386)
      ret(933) = dble(0.23459)
      ret(934) = dble(0.13604)
      ret(935) = dble(0.2369)
      ret(936) = dble(0.15267)
      ret(937) = dble(0.15453)
      ret(938) = dble(0.18962)
      ret(939) = dble(0.37591)
      ret(940) = dble(0.44411)
      ret(941) = dble(0.35071)
      ret(942) = dble(0.38192)
      ret(943) = dble(0.26289)
      ret(944) = dble(0.26987)
      ret(945) = dble(0.34729)
      ret(946) = dble(0.18409)
      ret(947) = dble(0.3501)
      ret(948) = dble(0.25911)
      ret(949) = dble(0.46514)
      ret(950) = dble(0.13944)
      ret(951) = dble(0.45563)
      ret(952) = dble(0.25418)
      ret(953) = dble(0.32442)
      ret(954) = dble(0.39988)
      ret(955) = dble(0.32204)
      ret(956) = dble(0.30996)
      ret(957) = dble(0.25591)
      ret(958) = dble(0.43453)
      ret(959) = dble(0.35294)
      ret(960) = dble(0.39685)
      ret(961) = dble(0.43481)
      ret(962) = dble(0.41664)
      ret(963) = dble(0.47585)
      ret(964) = dble(0.43242)
      ret(965) = dble(0.47469)
      ret(966) = dble(0.47377)
      ret(967) = dble(0.47353)
      ret(968) = dble(0.61301)
      ret(969) = dble(0.6448)
      ret(970) = dble(0.59689)
      ret(971) = dble(0.67059)
      ret(972) = dble(0.64629)
      ret(973) = dble(0.57081)
      ret(974) = dble(0.5417)
      ret(975) = dble(0.55536)
      ret(976) = dble(0.53872)
      ret(977) = dble(0.60084)
      ret(978) = dble(0.57903)
      ret(979) = dble(0.60046)
      ret(980) = dble(0.56941)
      ret(981) = dble(0.67058)
      ret(982) = dble(0.65102)
      ret(983) = dble(0.62915)
      ret(984) = dble(0.6929)
      ret(985) = dble(0.64734)
      ret(986) = dble(0.70553)
      ret(987) = dble(0.69489)
      ret(988) = dble(0.69059)
      ret(989) = dble(0.70391)
      ret(990) = dble(0.68843)
      ret(991) = dble(0.70833)
      ret(992) = dble(0.70597)
      ret(993) = dble(0.69325)
      ret(994) = dble(0.70891)
      ret(995) = dble(0.70673)
      ret(996) = dble(0.70409)
      ret(997) = dble(0.69555)
      ret(998) = dble(0.69481)
      ret(999) = dble(0.69455)
      ret(1000) = dble(0.69159)
      ret(1001) = dble(0.70013)
      ret(1002) = dble(0.68498)
      ret(1003) = dble(0.69086)
      ret(1004) = dble(0.68056)
      ret(1005) = dble(0.6414)
      ret(1006) = dble(0.67047)
      ret(1007) = dble(0.68463)
      ret(1008) = dble(0.68407)
      ret(1009) = dble(0.67742)
      ret(1010) = dble(0.67695)
      ret(1011) = dble(0.68034)
      ret(1012) = dble(0.67667)
      ret(1013) = dble(0.67556)
      ret(1014) = dble(0.67848)
      ret(1015) = dble(0.66676)
      ret(1016) = dble(0.66976)
      ret(1017) = dble(0.66237)
      ret(1018) = dble(0.67263)
      ret(1019) = dble(0.6488)
      ret(1020) = dble(0.65839)
      ret(1021) = dble(0.66107)
      ret(1022) = dble(0.6498)
      ret(1023) = dble(0.6549)
      ret(1024) = dble(0.65077)
      ret(1025) = dble(0.65727)
      ret(1026) = dble(0.65625)
      ret(1027) = dble(0.65318)
      ret(1028) = dble(0.65398)
      ret(1029) = dble(0.64687)
      ret(1030) = dble(0.65092)
      ret(1031) = dble(0.64799)
      ret(1032) = dble(0.64852)
      ret(1033) = dble(0.63751)
      ret(1034) = dble(0.64136)
      ret(1035) = dble(0.64348)
      ret(1036) = dble(0.64323)
      ret(1037) = dble(0.63664)
      ret(1038) = dble(0.63361)
      ret(1039) = dble(0.63802)
      ret(1040) = dble(0.63366)
      ret(1041) = dble(0.63379)
      ret(1042) = dble(0.63406)
      ret(1043) = dble(0.62773)
      ret(1044) = dble(0.63067)
      ret(1045) = dble(0.62712)
      ret(1046) = dble(0.61078)
      ret(1047) = dble(0.62008)
      ret(1048) = dble(0.62559)
      ret(1049) = dble(0.62206)
      ret(1050) = dble(0.61802)
      ret(1051) = dble(0.61862)
      ret(1052) = dble(0.61487)
      ret(1053) = dble(0.61302)
      ret(1054) = dble(0.61048)
      ret(1055) = dble(0.61242)
      ret(1056) = dble(0.61055)
      ret(1057) = dble(0.6091)
      ret(1058) = dble(0.60286)
      ret(1059) = dble(0.58453)
      ret(1060) = dble(0.60073)
      ret(1061) = dble(0.58694)
      ret(1062) = dble(0.59782)
      ret(1063) = dble(0.58815)
      ret(1064) = dble(0.59722)
      ret(1065) = dble(0.59461)
      ret(1066) = dble(0.5833)
      ret(1067) = dble(0.58637)
      ret(1068) = dble(0.58561)
      ret(1069) = dble(0.55428)
      ret(1070) = dble(0.57178)
      ret(1071) = dble(0.58304)
      ret(1072) = dble(0.58194)
      ret(1073) = dble(0.57086)
      ret(1074) = dble(0.5878)
      ret(1075) = dble(0.56054)
      ret(1076) = dble(0.58141)
      ret(1077) = dble(0.57175)
      ret(1078) = dble(0.57076)
      ret(1079) = dble(0.5721)
      ret(1080) = dble(0.56519)
      ret(1081) = dble(0.54973)
      ret(1082) = dble(0.55773)
      ret(1083) = dble(0.56603)
      ret(1084) = dble(0.54775)
      ret(1085) = dble(0.56163)
      ret(1086) = dble(0.52496)
      ret(1087) = dble(0.53685)
      ret(1088) = dble(0.56159)
      ret(1089) = dble(0.54856)
      ret(1090) = dble(0.52656)
      ret(1091) = dble(0.55722)
      ret(1092) = dble(0.55048)
      ret(1093) = dble(0.48417)
      ret(1094) = dble(0.5112)
      ret(1095) = dble(0.49363)
      ret(1096) = dble(0.47731)
      ret(1097) = dble(0.54805)
      ret(1098) = dble(0.47709)
      ret(1099) = dble(0.48161)
      ret(1100) = dble(0.46113)
      ret(1101) = dble(0.47169)
      ret(1102) = dble(0.44513)
      ret(1103) = dble(0.44291)
      ret(1104) = dble(0.44412)
      ret(1105) = dble(0.48065)
      ret(1106) = dble(0.3784)
      ret(1107) = dble(0.45866)
      ret(1108) = dble(0.39517)
      ret(1109) = dble(0.39249)
      ret(1110) = dble(0.45496)
      ret(1111) = dble(0.31572)
      ret(1112) = dble(0.3933)
      ret(1113) = dble(0.25599)
      ret(1114) = dble(0.28576)
      ret(1115) = dble(0.23833)
      ret(1116) = dble(0.19223)
      ret(1117) = dble(0.076164)
      ret(1118) = dble(0.20763)
      ret(1119) = dble(0.10821)
      ret(1120) = dble(0.13562)
      ret(1121) = dble(0.17753)
      ret(1122) = dble(0.078159)
      ret(1123) = dble(0.12255)
      ret(1124) = dble(0.10397)
      ret(1125) = dble(0.13794)
      ret(1126) = dble(0.049394)
      ret(1127) = dble(0.15032)
      ret(1128) = dble(0.094946)
      ret(1129) = dble(0.10133)
      ret(1130) = dble(0.067568)
      ret(1131) = dble(0.28201)
      ret(1132) = dble(0.22359)
      ret(1133) = dble(0.14661)
      ret(1134) = dble(0.039988)
      ret(1135) = dble(0.014819)
      ret(1136) = dble(0.1232)
      ret(1137) = dble(0.27472)
      ret(1138) = dble(0.19428)
      ret(1139) = dble(0.28484)
      ret(1140) = dble(0.24447)
      ret(1141) = dble(0.18486)
      ret(1142) = dble(0.21481)
      ret(1143) = dble(0.29758)
      ret(1144) = dble(0.10843)
      ret(1145) = dble(0.13976)
      ret(1146) = dble(0.15085)
      ret(1147) = dble(0.056715)
      ret(1148) = dble(0.25898)
      ret(1149) = dble(0.20894)
      ret(1150) = dble(0.11648)
      ret(1151) = dble(0.19453)
      ret(1152) = dble(0.23666)
      ret(1153) = dble(0.22762)
      ret(1154) = dble(0.13643)
      ret(1155) = dble(0.29903)
      ret(1156) = dble(0.26837)
      ret(1157) = dble(0.3004)
      ret(1158) = dble(0.2977)
      ret(1159) = dble(0.32163)
      ret(1160) = dble(0.27371)
      ret(1161) = dble(0.33167)
      ret(1162) = dble(0.33412)
      ret(1163) = dble(0.44644)
      ret(1164) = dble(0.38332)
      ret(1165) = dble(0.3708)
      ret(1166) = dble(0.35781)
      ret(1167) = dble(0.39105)
      ret(1168) = dble(0.40018)
      ret(1169) = dble(0.40348)
      ret(1170) = dble(0.43731)
      ret(1171) = dble(0.4275)
      ret(1172) = dble(0.4337)
      ret(1173) = dble(0.43522)
      ret(1174) = dble(0.32193)
      ret(1175) = dble(0.43142)
      ret(1176) = dble(0.45447)
      ret(1177) = dble(0.4504)
      ret(1178) = dble(0.34391)
      ret(1179) = dble(0.46114)
      ret(1180) = dble(0.42052)
      ret(1181) = dble(0.43423)
      ret(1182) = dble(0.30903)
      ret(1183) = dble(0.41853)
      ret(1184) = dble(0.40083)
      ret(1185) = dble(0.38908)
      ret(1186) = dble(0.45518)
      ret(1187) = dble(0.43494)
      ret(1188) = dble(0.32039)
      ret(1189) = dble(0.39685)
      ret(1190) = dble(0.44124)
      ret(1191) = dble(0.42638)
      ret(1192) = dble(0.45171)
      ret(1193) = dble(0.4337)
      ret(1194) = dble(0.44751)
      ret(1195) = dble(0.42671)
      ret(1196) = dble(0.41188)
      ret(1197) = dble(0.45527)
      ret(1198) = dble(0.41426)
      ret(1199) = dble(0.34869)
      ret(1200) = dble(0.42789)
      ret(1201) = dble(0.41735)
      ret(1202) = dble(0.41743)
      ret(1203) = dble(0.41441)
      ret(1204) = dble(0.34645)
      ret(1205) = dble(0.41714)
      ret(1206) = dble(0.45872)
      ret(1207) = dble(0.41044)
      ret(1208) = dble(0.41379)
      ret(1209) = dble(0.39548)
      ret(1210) = dble(0.43267)
      ret(1211) = dble(0.40319)
      ret(1212) = dble(0.40572)
      ret(1213) = dble(0.44804)
      ret(1214) = dble(0.41443)
      ret(1215) = dble(0.40851)
      ret(1216) = dble(0.44509)
      ret(1217) = dble(0.43457)
      ret(1218) = dble(0.43842)
      ret(1219) = dble(0.42639)
      ret(1220) = dble(0.43724)
      ret(1221) = dble(0.44413)
      ret(1222) = dble(0.43096)
      ret(1223) = dble(0.424)
      ret(1224) = dble(0.42788)
      ret(1225) = dble(0.44141)
      ret(1226) = dble(0.44696)
      ret(1227) = dble(0.4136)
      ret(1228) = dble(0.44544)
      ret(1229) = dble(0.44608)
      ret(1230) = dble(0.43928)
      ret(1231) = dble(0.45067)
      ret(1232) = dble(0.44525)
      ret(1233) = dble(0.43359)
      ret(1234) = dble(0.44893)
      ret(1235) = dble(0.44409)
      ret(1236) = dble(0.44795)
      ret(1237) = dble(0.44259)
      ret(1238) = dble(0.44694)
      ret(1239) = dble(0.44194)
      ret(1240) = dble(0.44011)
      ret(1241) = dble(0.4413)
      ret(1242) = dble(0.44179)
      ret(1243) = dble(0.43712)
      ret(1244) = dble(0.43499)
      ret(1245) = dble(0.43622)
      ret(1246) = dble(0.43902)
      ret(1247) = dble(0.43715)
      ret(1248) = dble(0.43828)
      ret(1249) = dble(0.4393)
      ret(1250) = dble(0.43684)
      ret(1251) = dble(0.4326)
      ret(1252) = dble(0.43106)
      ret(1253) = dble(0.42803)
      ret(1254) = dble(0.42416)
      ret(1255) = dble(0.43088)
      ret(1256) = dble(0.42096)
      ret(1257) = dble(0.4163)
      ret(1258) = dble(0.42549)
      ret(1259) = dble(0.40868)
      ret(1260) = dble(0.41235)
      ret(1261) = dble(0.39371)
      ret(1262) = dble(0.37867)
      ret(1263) = dble(0.383)
      ret(1264) = dble(0.35568)
      ret(1265) = dble(0.37871)
      ret(1266) = dble(0.36881)
      ret(1267) = dble(0.37159)
      ret(1268) = dble(0.35475)
      ret(1269) = dble(0.23656)
      ret(1270) = dble(0.37087)
      ret(1271) = dble(0.39062)
      ret(1272) = dble(0.39114)
      ret(1273) = dble(0.38874)
      ret(1274) = dble(0.38864)
      ret(1275) = dble(0.39455)
      ret(1276) = dble(0.39895)
      ret(1277) = dble(0.40191)
      ret(1278) = dble(0.40916)
      ret(1279) = dble(0.40626)
      ret(1280) = dble(0.40387)
      ret(1281) = dble(0.39554)
      ret(1282) = dble(0.35695)
      ret(1283) = dble(0.38978)
      ret(1284) = dble(0.40268)
      ret(1285) = dble(0.40577)
      ret(1286) = dble(0.40878)
      ret(1287) = dble(0.40405)
      ret(1288) = dble(0.40192)
      ret(1289) = dble(0.39194)
      ret(1290) = dble(0.39522)
      ret(1291) = dble(0.40004)
      ret(1292) = dble(0.37946)
      ret(1293) = dble(0.39506)
      ret(1294) = dble(0.38709)
      ret(1295) = dble(0.38801)
      ret(1296) = dble(0.37322)
      ret(1297) = dble(0.35583)
      ret(1298) = dble(0.37536)
      ret(1299) = dble(0.39127)
      ret(1300) = dble(0.33855)
      ret(1301) = dble(0.34728)
      ret(1302) = dble(0.37539)
      ret(1303) = dble(0.33197)
      ret(1304) = dble(0.28849)
      ret(1305) = dble(0.36783)
      ret(1306) = dble(0.36853)
      ret(1307) = dble(0.29362)
      ret(1308) = dble(0.33277)
      ret(1309) = dble(0.36822)
      ret(1310) = dble(0.28908)
      ret(1311) = dble(0.32012)
      ret(1312) = dble(0.31986)
      ret(1313) = dble(0.30089)
      ret(1314) = dble(0.2769)
      ret(1315) = dble(0.27447)
      ret(1316) = dble(0.31113)
      ret(1317) = dble(0.29969)
      ret(1318) = dble(0.31984)
      ret(1319) = dble(0.25803)
      ret(1320) = dble(0.24864)
      ret(1321) = dble(0.28684)
      ret(1322) = dble(0.29023)
      ret(1323) = dble(0.22386)
      ret(1324) = dble(0.25231)
      ret(1325) = dble(0.30943)
      ret(1326) = dble(0.26956)
      ret(1327) = dble(0.25593)
      ret(1328) = dble(0.22555)
      ret(1329) = dble(0.17097)
      ret(1330) = dble(0.22052)
      ret(1331) = dble(0.13951)
      ret(1332) = dble(0.14046)
      ret(1333) = dble(0.19545)
      ret(1334) = dble(0.16302)
      ret(1335) = dble(0.22244)
      ret(1336) = dble(0.1767)
      ret(1337) = dble(0.15852)
      ret(1338) = dble(0.17151)
      ret(1339) = dble(0.17033)
      ret(1340) = dble(0.16216)
      ret(1341) = dble(0.16419)
      ret(1342) = dble(0.17149)
      ret(1343) = dble(0.12259)
      ret(1344) = dble(0.073018)
      ret(1345) = dble(0.10521)
      ret(1346) = dble(0.056189)
      ret(1347) = dble(0.058058)
      ret(1348) = dble(0.0045862)
      ret(1349) = dble(0.015617)
      ret(1350) = dble(0.015488)
      ret(1351) = dble(0.0044759)
      ret(1352) = dble(0.0014661)
      ret(1353) = dble(9.2918E-05)
      ret(1354) = dble(0.00028051)
      ret(1355) = dble(3.4847E-06)
      ret(1356) = dble(4.6489E-05)
      ret(1357) = dble(6.9429E-05)
      ret(1358) = dble(4.0575E-06)
      ret(1359) = dble(7.104E-07)
      ret(1360) = dble(2.0706E-06)
      ret(1361) = dble(4.6566E-09)
      ret(1362) = dble(1.7489E-11)
      ret(1363) = dble(3.054E-06)
      ret(1364) = dble(1.315E-06)
      ret(1365) = dble(8.7833E-12)
      ret(1366) = dble(1.2379E-05)
      ret(1367) = dble(4.8161E-06)
      ret(1368) = dble(1.4311E-13)
      ret(1369) = dble(5.0008E-07)
      ret(1370) = dble(2.8266E-07)
      ret(1371) = dble(1.9101E-08)
      ret(1372) = dble(2.6623E-06)
      ret(1373) = dble(4.2991E-05)
      ret(1374) = dble(0.0001735)
      ret(1375) = dble(0.00031309)
      ret(1376) = dble(0.00024935)
      ret(1377) = dble(0.00011883)
      ret(1378) = dble(0.0010741)
      ret(1379) = dble(5.0533E-05)
      ret(1380) = dble(7.9042E-05)
      ret(1381) = dble(2.2978E-06)
      ret(1382) = dble(2.4874E-06)
      ret(1383) = dble(4.2653E-08)
      ret(1384) = dble(5.9782E-07)
      ret(1385) = dble(2.0255E-06)
      ret(1386) = dble(2.4441E-06)
      ret(1387) = dble(0.00019288)
      ret(1388) = dble(3.9037E-06)
      ret(1389) = dble(0.00056338)
      ret(1390) = dble(0.00047836)
      ret(1391) = dble(0.00033345)
      ret(1392) = dble(2.3065E-05)
      ret(1393) = dble(0.00011238)
      ret(1394) = dble(7.3268E-05)
      ret(1395) = dble(6.5137E-07)
      ret(1396) = dble(6.1338E-09)
      ret(1397) = dble(4.7605E-05)
      ret(1398) = dble(0.0012329)
      ret(1399) = dble(0.00078835)
      ret(1400) = dble(3.1513E-09)
      ret(1401) = dble(1.0219E-08)
      ret(1402) = dble(0.0017817)
      ret(1403) = dble(0.0023108)
      ret(1404) = dble(0.00071755)
      ret(1405) = dble(3.5395E-07)
      ret(1406) = dble(0.0019861)
      ret(1407) = dble(0.00016957)
      ret(1408) = dble(0.0016023)
      ret(1409) = dble(0.00060159)
      ret(1410) = dble(0.00045332)
      ret(1411) = dble(0.0020544)
      ret(1412) = dble(0.002565)
      ret(1413) = dble(0.02269)
      ret(1414) = dble(0.00035359)
      ret(1415) = dble(0.00017854)
      ret(1416) = dble(0.034561)
      ret(1417) = dble(0.011431)
      ret(1418) = dble(0.013182)
      ret(1419) = dble(0.0020851)
      ret(1420) = dble(0.0080437)
      ret(1421) = dble(0.0089117)
      ret(1422) = dble(0.045023)
      ret(1423) = dble(0.0089676)
      ret(1424) = dble(0.016511)
      ret(1425) = dble(0.025142)
      ret(1426) = dble(0.027032)
      ret(1427) = dble(0.04818)
      ret(1428) = dble(0.004436)
      ret(1429) = dble(0.036985)
      ret(1430) = dble(0.059912)
      ret(1431) = dble(0.048792)
      ret(1432) = dble(0.0024524)
      ret(1433) = dble(0.03487)
      ret(1434) = dble(0.020403)
      ret(1435) = dble(0.020847)
      ret(1436) = dble(0.037326)
      ret(1437) = dble(0.029085)
      ret(1438) = dble(0.012913)
      ret(1439) = dble(0.049672)
      ret(1440) = dble(0.038547)
      ret(1441) = dble(0.030959)
      ret(1442) = dble(0.035356)
      ret(1443) = dble(0.043868)
      ret(1444) = dble(0.060143)
      ret(1445) = dble(0.048434)
      ret(1446) = dble(0.022492)
      ret(1447) = dble(0.035265)
      ret(1448) = dble(0.11254)
      ret(1449) = dble(0.099374)
      ret(1450) = dble(0.026699)
      ret(1451) = dble(0.01098)
      ret(1452) = dble(0.060718)
      ret(1453) = dble(0.079803)
      ret(1454) = dble(0.13384)
      ret(1455) = dble(0.064409)
      ret(1456) = dble(0.086158)
      ret(1457) = dble(0.11386)
      ret(1458) = dble(0.13273)
      ret(1459) = dble(0.1586)
      ret(1460) = dble(0.083161)
      ret(1461) = dble(0.087886)
      ret(1462) = dble(0.12708)
      ret(1463) = dble(0.042106)
      ret(1464) = dble(0.1477)
      ret(1465) = dble(0.090911)
      ret(1466) = dble(0.063498)
      ret(1467) = dble(0.035128)
      ret(1468) = dble(0.074928)
      ret(1469) = dble(0.092344)
      ret(1470) = dble(0.048397)
      ret(1471) = dble(0.017394)
      ret(1472) = dble(0.045566)
      ret(1473) = dble(0.068368)
      ret(1474) = dble(0.094765)
      ret(1475) = dble(0.17954)
      ret(1476) = dble(0.066987)
      ret(1477) = dble(0.067916)
      ret(1478) = dble(0.061825)
      ret(1479) = dble(0.1168)
      ret(1480) = dble(0.059063)
      ret(1481) = dble(0.11221)
      ret(1482) = dble(0.056967)
      ret(1483) = dble(0.14454)
      ret(1484) = dble(0.13375)
      ret(1485) = dble(0.12168)
      ret(1486) = dble(0.12008)
      ret(1487) = dble(0.059042)
      ret(1488) = dble(0.091654)
      ret(1489) = dble(0.18443)
      ret(1490) = dble(0.16993)
      ret(1491) = dble(0.19222)
      ret(1492) = dble(0.15986)
      ret(1493) = dble(0.17651)
      ret(1494) = dble(0.19794)
      ret(1495) = dble(0.17745)
      ret(1496) = dble(0.16385)
      ret(1497) = dble(0.22198)
      ret(1498) = dble(0.18437)
      ret(1499) = dble(0.21141)
      ret(1500) = dble(0.24339)
      ret(1501) = dble(0.25782)
      ret(1502) = dble(0.22688)
      ret(1503) = dble(0.17972)
      ret(1504) = dble(0.15586)
      ret(1505) = dble(0.17885)
      ret(1506) = dble(0.25026)
      ret(1507) = dble(0.24779)
      ret(1508) = dble(0.23606)
      ret(1509) = dble(0.18169)
      ret(1510) = dble(0.26269)
      ret(1511) = dble(0.2571)
      ret(1512) = dble(0.25315)
      ret(1513) = dble(0.23544)
      ret(1514) = dble(0.2193)
      ret(1515) = dble(0.25804)
      ret(1516) = dble(0.24943)
      ret(1517) = dble(0.24214)
      ret(1518) = dble(0.24489)
      ret(1519) = dble(0.23739)
      ret(1520) = dble(0.25688)
      ret(1521) = dble(0.26707)
      ret(1522) = dble(0.25617)
      ret(1523) = dble(0.27192)
      ret(1524) = dble(0.26743)
      ret(1525) = dble(0.2514)
      ret(1526) = dble(0.25977)
      ret(1527) = dble(0.25468)
      ret(1528) = dble(0.27122)
      ret(1529) = dble(0.2646)
      ret(1530) = dble(0.24789)
      ret(1531) = dble(0.262)
      ret(1532) = dble(0.27039)
      ret(1533) = dble(0.26918)
      ret(1534) = dble(0.26122)
      ret(1535) = dble(0.25924)
      ret(1536) = dble(0.26679)
      ret(1537) = dble(0.26558)
      ret(1538) = dble(0.26427)
      ret(1539) = dble(0.26519)
      ret(1540) = dble(0.25737)
      ret(1541) = dble(0.26141)
      ret(1542) = dble(0.26165)
      ret(1543) = dble(0.26439)
      ret(1544) = dble(0.26443)
      ret(1545) = dble(0.26922)
      ret(1546) = dble(0.26705)
      ret(1547) = dble(0.26537)
      ret(1548) = dble(0.2592)
      ret(1549) = dble(0.26568)
      ret(1550) = dble(0.26226)
      ret(1551) = dble(0.26293)
      ret(1552) = dble(0.26415)
      ret(1553) = dble(0.26366)
      ret(1554) = dble(0.25727)
      ret(1555) = dble(0.26005)
      ret(1556) = dble(0.25569)
      ret(1557) = dble(0.26301)
      ret(1558) = dble(0.26093)
      ret(1559) = dble(0.26054)
      ret(1560) = dble(0.25821)
      ret(1561) = dble(0.26242)
      ret(1562) = dble(0.26003)
      ret(1563) = dble(0.25917)
      ret(1564) = dble(0.25525)
      ret(1565) = dble(0.25975)
      ret(1566) = dble(0.25506)
      ret(1567) = dble(0.25566)
      ret(1568) = dble(0.24997)
      ret(1569) = dble(0.24736)
      ret(1570) = dble(0.23497)
      ret(1571) = dble(0.2285)
      ret(1572) = dble(0.23108)
      ret(1573) = dble(0.2275)
      ret(1574) = dble(0.23464)
      ret(1575) = dble(0.23294)
      ret(1576) = dble(0.2398)
      ret(1577) = dble(0.20994)
      ret(1578) = dble(0.22854)
      ret(1579) = dble(0.23005)
      ret(1580) = dble(0.23772)
      ret(1581) = dble(0.24165)
      ret(1582) = dble(0.23508)
      ret(1583) = dble(0.24051)
      ret(1584) = dble(0.24194)
      ret(1585) = dble(0.25135)
      ret(1586) = dble(0.24838)
      ret(1587) = dble(0.24579)
      ret(1588) = dble(0.24388)
      ret(1589) = dble(0.22567)
      ret(1590) = dble(0.23486)
      ret(1591) = dble(0.23503)
      ret(1592) = dble(0.24502)
      ret(1593) = dble(0.25092)
      ret(1594) = dble(0.2489)
      ret(1595) = dble(0.25083)
      ret(1596) = dble(0.23751)
      ret(1597) = dble(0.23985)
      ret(1598) = dble(0.24693)
      ret(1599) = dble(0.23511)
      ret(1600) = dble(0.23133)
      ret(1601) = dble(0.21691)
      ret(1602) = dble(0.2178)
      ret(1603) = dble(0.21765)
      ret(1604) = dble(0.22197)
      ret(1605) = dble(0.2301)
      ret(1606) = dble(0.23453)
      ret(1607) = dble(0.22637)
      ret(1608) = dble(0.22343)
      ret(1609) = dble(0.22088)
      ret(1610) = dble(0.21146)
      ret(1611) = dble(0.22039)
      ret(1612) = dble(0.22422)
      ret(1613) = dble(0.23047)
      ret(1614) = dble(0.23162)
      ret(1615) = dble(0.2342)
      ret(1616) = dble(0.22395)
      ret(1617) = dble(0.22798)
      ret(1618) = dble(0.2366)
      ret(1619) = dble(0.23415)
      ret(1620) = dble(0.22783)
      ret(1621) = dble(0.22765)
      ret(1622) = dble(0.23081)
      ret(1623) = dble(0.23559)
      ret(1624) = dble(0.23582)
      ret(1625) = dble(0.23109)
      ret(1626) = dble(0.23294)
      ret(1627) = dble(0.23398)
      ret(1628) = dble(0.23446)
      ret(1629) = dble(0.23456)
      ret(1630) = dble(0.22984)
      ret(1631) = dble(0.23136)
      ret(1632) = dble(0.23151)
      ret(1633) = dble(0.22614)
      ret(1634) = dble(0.22628)
      ret(1635) = dble(0.22712)
      ret(1636) = dble(0.22879)
      ret(1637) = dble(0.22064)
      ret(1638) = dble(0.21393)
      ret(1639) = dble(0.2141)
      ret(1640) = dble(0.20913)
      ret(1641) = dble(0.21348)
      ret(1642) = dble(0.21467)
      ret(1643) = dble(0.20939)
      ret(1644) = dble(0.21733)
      ret(1645) = dble(0.21216)
      ret(1646) = dble(0.21147)
      ret(1647) = dble(0.22135)
      ret(1648) = dble(0.21057)
      ret(1649) = dble(0.21261)
      ret(1650) = dble(0.21902)
      ret(1651) = dble(0.20281)
      ret(1652) = dble(0.21754)
      ret(1653) = dble(0.21661)
      ret(1654) = dble(0.20991)
      ret(1655) = dble(0.21619)
      ret(1656) = dble(0.21494)
      ret(1657) = dble(0.21613)
      ret(1658) = dble(0.2187)
      ret(1659) = dble(0.21514)
      ret(1660) = dble(0.21721)
      ret(1661) = dble(0.21774)
      ret(1662) = dble(0.21313)
      ret(1663) = dble(0.2163)
      ret(1664) = dble(0.21498)
      ret(1665) = dble(0.20607)
      ret(1666) = dble(0.17411)
      ret(1667) = dble(0.20502)
      ret(1668) = dble(0.20881)
      ret(1669) = dble(0.20939)
      ret(1670) = dble(0.21573)
      ret(1671) = dble(0.21294)
      ret(1672) = dble(0.20582)
      ret(1673) = dble(0.21052)
      ret(1674) = dble(0.21002)
      ret(1675) = dble(0.20793)
      ret(1676) = dble(0.20584)
      ret(1677) = dble(0.20668)
      ret(1678) = dble(0.20365)
      ret(1679) = dble(0.20741)
      ret(1680) = dble(0.20017)
      ret(1681) = dble(0.18936)
      ret(1682) = dble(0.1983)
      ret(1683) = dble(0.20357)
      ret(1684) = dble(0.19283)
      ret(1685) = dble(0.20763)
      ret(1686) = dble(0.20476)
      ret(1687) = dble(0.19951)
      ret(1688) = dble(0.20465)
      ret(1689) = dble(0.20178)
      ret(1690) = dble(0.19991)
      ret(1691) = dble(0.18808)
      ret(1692) = dble(0.20174)
      ret(1693) = dble(0.20587)
      ret(1694) = dble(0.1995)
      ret(1695) = dble(0.20427)
      ret(1696) = dble(0.20383)
      ret(1697) = dble(0.17649)
      ret(1698) = dble(0.20207)
      ret(1699) = dble(0.20024)
      ret(1700) = dble(0.19464)
      ret(1702) = dble(0.19874)
      ret(1705) = dble(0.19275)
      ret(1710) = dble(0.18316)
      ret(1715) = dble(0.1849)
      ret(1720) = dble(0.18231)
      ret(1725) = dble(0.17367)
      ret(1730) = dble(0.16979)
      ret(1735) = dble(0.15758)
      ret(1740) = dble(0.16405)
      ret(1745) = dble(0.15105)
      ret(1750) = dble(0.16162)
      ret(1755) = dble(0.14931)
      ret(1760) = dble(0.15608)
      ret(1765) = dble(0.12967)
      ret(1770) = dble(0.13831)
      ret(1775) = dble(0.11213)
      ret(1780) = dble(0.098143)
      ret(1785) = dble(0.075201)
      ret(1790) = dble(0.086831)
      ret(1795) = dble(0.045864)
      ret(1800) = dble(0.031112)
      ret(1805) = dble(0.014485)
      ret(1810) = dble(0.0094762)
      ret(1815) = dble(0.0032093)
      ret(1820) = dble(0.00096578)
      ret(1825) = dble(0.0012463)
      ret(1830) = dble(5.0896E-06)
      ret(1835) = dble(6.2784E-06)
      ret(1840) = dble(6.1337E-08)
      ret(1845) = dble(6.1298E-06)
      ret(1850) = dble(2.9348E-06)
      ret(1855) = dble(2.7795E-07)
      ret(1860) = dble(1.092E-05)
      ret(1865) = dble(1.6644E-05)
      ret(1870) = dble(2.6148E-10)
      ret(1875) = dble(4.4296E-10)
      ret(1880) = dble(7.6123E-05)
      ret(1885) = dble(4.3129E-05)
      ret(1890) = dble(0.00021956)
      ret(1895) = dble(0.00012743)
      ret(1900) = dble(8.4916E-07)
      ret(1905) = dble(5.5798E-07)
      ret(1910) = dble(2.2726E-05)
      ret(1915) = dble(1.9673E-05)
      ret(1920) = dble(0.00044451)
      ret(1925) = dble(0.00092326)
      ret(1930) = dble(0.00054474)
      ret(1935) = dble(0.0035428)
      ret(1940) = dble(0.0032357)
      ret(1945) = dble(0.010707)
      ret(1950) = dble(0.016482)
      ret(1955) = dble(0.009886)
      ret(1960) = dble(0.021569)
      ret(1965) = dble(0.028114)
      ret(1970) = dble(0.048055)
      ret(1975) = dble(0.06673)
      ret(1980) = dble(0.074234)
      ret(1985) = dble(0.081625)
      ret(1990) = dble(0.084124)
      ret(1995) = dble(0.079787)
      ret(2000) = dble(0.037491)
      ret(2005) = dble(0.014747)
      ret(2010) = dble(0.039071)
      ret(2015) = dble(0.026208)
      ret(2020) = dble(0.044239)
      ret(2025) = dble(0.072779)
      ret(2030) = dble(0.08346)
      ret(2035) = dble(0.094808)
      ret(2040) = dble(0.088344)
      ret(2045) = dble(0.089636)

   end function

   function to_ppfd_from_spectrum(spectrum, ppfd_spectrum) result(ret)
      real(real64), intent(in) :: spectrum(:) ! W/m^2/nm
      real(real64), optional, allocatable, intent(inout) :: ppfd_spectrum(:)
      real(real64) :: ret
      real(real128) :: wave_length, light_speed, Plank_const, energy_per_photon, &
                       this_ppfd_mol, this_ppfd_micromol, num_photon, Avogadro_constant
      integer(int32) :: i

      light_speed = 299792458.0d0 ! m/s
      Plank_const = dble(6.62607015E-34) ! J⋅s
      Avogadro_constant = dble(6.02214076E+23) ! /mol

      if (present(ppfd_spectrum)) then
         ppfd_spectrum = 0.0d0*spectrum
      end if

      ! array id is seen as a wavelength (nm)
      ret = 0.0d0
      do i = 1, size(spectrum)
         wave_length = i*(1.0e-9) ! m
         if (wave_length < 400.0d0*(1.0e-9)) cycle
         if (wave_length > 700.0d0*(1.0e-9)) cycle

         energy_per_photon = Plank_const*light_speed/wave_length ! J
         ! パワー(W/m^2/nm)
         ! = パワー(J/s/m^2/nm)
         num_photon = spectrum(i)/energy_per_photon ! num_particle/s/m^2/nm
         this_ppfd_mol = num_photon/Avogadro_constant*1.0d0 ! mol/m^2/s for dlambda=1nm
         this_ppfd_micromol = this_ppfd_mol*1000.0d0*1000.0d0 ! micro-mol/m^2/s
         ret = ret + dble(this_ppfd_micromol)
         if (present(ppfd_spectrum)) then
            ppfd_spectrum(i) = dble(this_ppfd_micromol)
         end if

      end do

   end function

! #################################################################
   subroutine turnOffLight(this)
      class(Light_), intent(inout) :: this

      this%maxPPFD = 0.0d0
      this%spectrum = 0.0d0
   end subroutine
! #################################################################

! #################################################################
   subroutine addSpectrumLight(this, filename)
      class(Light_), intent(inout) :: this
      character(*), intent(in) :: filename
      type(IO_) :: f
      integer(int32) :: wavelength
      real(real64) :: radiation
      integer(int32) :: i

      call f%open(filename, "r")
      do i = 1, size(this%spectrum)
         read (f%fh, *) wavelength, radiation
         this%spectrum(int(wavelength)) = this%spectrum(int(wavelength)) + radiation ! W/m^2/nm
      end do
      call f%close()

      this%maxPPFD = to_ppfd_from_spectrum(this%spectrum)

   end subroutine
! #################################################################

! #################################################################
   subroutine addSpectrum_by_single_Light(this, wavelength, peak_radiation, sigma)
      class(Light_), intent(inout) :: this
      real(real64), intent(in) :: wavelength, peak_radiation, sigma
      real(real64) :: this_radiation, original_peak
      type(IO_) :: f
      type(Math_) :: math
      integer(int32) :: i

      original_peak = 1.0d0/sqrt(2.0d0*math%pi)/sigma
      do i = 1, size(this%spectrum)
       this_radiation = peak_radiation/original_peak/sqrt(2.0d0*math%pi)/sigma*exp(-((dble(i) - wavelength)**2)/(2.0d0*sigma*sigma))
         this%spectrum(i) = this%spectrum(i) + this_radiation ! W/m^2/nm
      end do

      this%maxPPFD = to_ppfd_from_spectrum(this%spectrum)

   end subroutine
! #################################################################

   function gaussian_function(x, mu, sigma1, sigma2) result(ret)
      real(real64), intent(in) :: x, mu, sigma1, sigma2
      real(real64) :: ret

      if (x < mu) then
         ret = exp(-0.50d0*((x - mu)**2)/(sigma1*sigma1))
      else
         ret = exp(-0.50d0*((x - mu)**2)/(sigma2*sigma2))
      end if
   end function

! #################################################################
   function to_RGB_LightClass(this) result(ret)
      class(Light_), intent(in) :: this
      real(real64) :: ret(1:3), XYZ(1:3), RGB(1:3), to_RBG_from_XYZ(1:3, 1:3)
      real(real64), allocatable :: x(:), y(:), z(:)
      integer(int32) :: i

      !https://ja.wikipedia.org/wiki/CIE_1931_%E8%89%B2%E7%A9%BA%E9%96%93
      ! CIE 1931 function
      x = zeros(size(this%spectrum))
      y = zeros(size(this%spectrum))
      z = zeros(size(this%spectrum))
      do i = 1, size(this%spectrum)
         x(i) = 1.0560d0*gaussian_function(dble(i), 599.8d0, 37.9d0, 31.0d0) &
                + 0.362d0*gaussian_function(dble(i), 442.0d0, 16.0d0, 26.70d0) &
                - 0.065d0*gaussian_function(dble(i), 501.10d0, 20.40d0, 26.20d0)
         y(i) = 0.820d0*gaussian_function(dble(i), 568.8d0, 46.9d0, 40.5d0) &
                + 0.286d0*gaussian_function(dble(i), 530.9d0, 16.3d0, 31.10d0)
         z(i) = 1.217d0*gaussian_function(dble(i), 437.0d0, 11.8d0, 36.0d0) &
                + 0.681d0*gaussian_function(dble(i), 459.0d0, 26.0d0, 13.80d0)
      end do

      !https://rayspace.xyz/CG/contents/Spectrum_RGB/
      XYZ(1) = dot_product(this%spectrum(380:780), x(380:780))
      XYZ(2) = dot_product(this%spectrum(380:780), y(380:780))
      XYZ(3) = dot_product(this%spectrum(380:780), z(380:780))

      !http://www.enjoy.ne.jp/~k-ichikawa/CIEXYZ_RGB.html
      to_RBG_from_XYZ(1, 1:3) = [2.3655d0, -0.8971d0, -0.4683d0]
      to_RBG_from_XYZ(2, 1:3) = [-0.5151d0, 1.4264d0, 0.0887d0]
      to_RBG_from_XYZ(3, 1:3) = [0.0052d0, -0.0144d0, 1.0089d0]
      RGB = matmul(to_RBG_from_XYZ, XYZ)
      ret = RGB
      if (ret(1) > 255) then
         ret(1) = 255.0d0
      end if
      if (ret(2) > 255) then
         ret(2) = 255.0d0
      end if
      if (ret(3) > 255) then
         ret(3) = 255.0d0
      end if
      if (ret(1) < 0) then
         ret(1) = 0
      end if
      if (ret(2) < 0) then
         ret(2) = 0
      end if
      if (ret(3) < 0) then
         ret(3) = 0
      end if
   end function
! #################################################################

end module