diff --git a/src/sw0.rs b/src/sw0.rs index ae606227..3539545d 100644 --- a/src/sw0.rs +++ b/src/sw0.rs @@ -69,349 +69,373 @@ pub fn sp_lambert_w0(z: f64) -> f64 { -1.0 } else if z == 0.0 { 0.0 - } else if z <= 2.008_217_811_584_472_656_3 { - // W <= 0.854, X_1 - - rational_function( - sqrt(z - NEG_INV_E), - [ - -0.999_999_940_395_401_883_3, - 0.055_730_052_161_777_802_73, - 2.126_973_249_105_317_442_1, - 0.813_511_236_783_528_788_0, - 0.016_324_880_146_070_158_165, - ], - [ - 1.0, - 2.275_906_559_863_465_118_2, - 1.367_597_013_868_904_082_9, - 0.186_158_234_528_316_218_70, - ], - ) - } else if z <= 30.539_142_109_510_895_244 { - // W <= 2.502, X_2 - - rational_function( - sqrt(z - NEG_INV_E), - [ - -0.985_519_709_059_990_933_51, - 1.077_497_573_381_351_625_9, - 0.871_751_030_681_774_965_65, - 0.054_352_728_608_275_766_374, - ], - [ - 1.0, - 1.186_101_403_701_543_363_7, - 0.249_962_984_308_281_622_21, - 0.006_881_368_648_675_912_400_2, - ], - ) - } else if z <= 371.669_843_713_757_760_70 { - // W <= 4.430, X_3 + } else if z <= 4.995_018_739_704_194_635_5e9 { + if z <= 4_705.918_954_265_969_037_7 { + if z <= 30.539_142_109_510_895_244 { + if z <= 2.008_217_811_584_472_656_3 { + // W <= 0.854, X_1 - rational_function( - sqrt(z - NEG_INV_E), - [ - -0.762_397_113_463_688_842_39, - 1.231_773_161_336_359_583_3, - 0.243_424_471_130_566_945_10, - 0.004_320_601_393_878_235_597_4, - ], - [ - 1.0, - 0.579_386_215_035_869_076_09, - 0.046_601_427_736_078_777_155, - 0.000_435_128_175_674_741_091_42, - ], - ) - } else if z <= 4_705.918_954_265_969_037_7 { - // W <= 6.574, X_4 + rational_function( + sqrt(z - NEG_INV_E), + [ + -0.999_999_940_395_401_883_3, + 0.055_730_052_161_777_802_73, + 2.126_973_249_105_317_442_1, + 0.813_511_236_783_528_788_0, + 0.016_324_880_146_070_158_165, + ], + [ + 1.0, + 2.275_906_559_863_465_118_2, + 1.367_597_013_868_904_082_9, + 0.186_158_234_528_316_218_70, + ], + ) + } else { + // W <= 2.502, X_2 - rational_function( - sqrt(z - NEG_INV_E), - [ - 0.085_801_247_434_391_388_025, - 0.825_397_980_997_483_437_22, - 0.039_781_960_760_329_074_310, - 0.000_187_855_789_275_837_990_84, - ], - [ - 1.0, - 0.213_380_768_170_801_410_22, - 0.005_462_672_039_792_693_555_3, - 0.000_015_449_534_481_294_754_830, - ], - ) - } else if z <= 64_640.797_355_310_089_675 { - // W <= 8.892, X_5 + rational_function( + sqrt(z - NEG_INV_E), + [ + -0.985_519_709_059_990_933_51, + 1.077_497_573_381_351_625_9, + 0.871_751_030_681_774_965_65, + 0.054_352_728_608_275_766_374, + ], + [ + 1.0, + 1.186_101_403_701_543_363_7, + 0.249_962_984_308_281_622_21, + 0.006_881_368_648_675_912_400_2, + ], + ) + } + } else { + if z <= 371.669_843_713_757_760_70 { + // W <= 4.430, X_3 - rational_function( - sqrt(z - NEG_INV_E), - [ - 1.621_924_538_347_016_874_2, - 0.388_691_451_325_166_635_64, - 0.004_575_064_267_850_351_111_1, - 5.538_467_214_864_449_887_3e-6, - ], - [ - 1.0, - 0.065_219_460_735_182_414_183, - 0.000_478_827_607_890_225_089_40, - 3.809_482_814_629_240_109_9e-7, - ], - ) - } else if z <= 965_649.030_871_163_226_41 { - // W <= 11.351, X_6 + rational_function( + sqrt(z - NEG_INV_E), + [ + -0.762_397_113_463_688_842_39, + 1.231_773_161_336_359_583_3, + 0.243_424_471_130_566_945_10, + 0.004_320_601_393_878_235_597_4, + ], + [ + 1.0, + 0.579_386_215_035_869_076_09, + 0.046_601_427_736_078_777_155, + 0.000_435_128_175_674_741_091_42, + ], + ) + } else { + // W <= 6.574, X_4 - rational_function( - sqrt(z - NEG_INV_E), - [ - 3.621_899_608_569_591_996_9, - 0.148_846_467_548_801_598_69, - 0.000_424_696_224_099_984_031_46, - 1.279_017_971_037_421_684_6e-7, - ], - [ - 1.0, - 0.017_985_659_319_608_747_571, - 0.000_035_446_449_757_357_845_802, - 7.506_249_296_303_704_700_5e-9, - ], - ) - } else if z <= 1.559_333_422_803_816_549_0e7 { - // W <= 13.928, X_7 + rational_function( + sqrt(z - NEG_INV_E), + [ + 0.085_801_247_434_391_388_025, + 0.825_397_980_997_483_437_22, + 0.039_781_960_760_329_074_310, + 0.000_187_855_789_275_837_990_84, + ], + [ + 1.0, + 0.213_380_768_170_801_410_22, + 0.005_462_672_039_792_693_555_3, + 0.000_015_449_534_481_294_754_830, + ], + ) + } + } + } else if z <= 1.559_333_422_803_816_549_0e7 { + if z <= 965_649.030_871_163_226_41 { + if z <= 64_640.797_355_310_089_675 { + // W <= 8.892, X_5 - rational_function( - sqrt(z - NEG_INV_E), - [ - 5.907_336_973_960_809_058_9, - 0.050_053_653_594_737_112_977, - 0.000_034_072_148_625_204_698_714, - 2.481_206_469_365_548_349_2e-9, - ], - [ - 1.0, - 0.004_655_899_001_684_321_048_8, - 2.344_944_586_080_881_205_0e-6, - 1.263_142_996_480_846_114_0e-10, - ], - ) - } else if z <= 2.702_564_027_724_190_315_7e8 { - // W <= 16.605, X_8 + rational_function( + sqrt(z - NEG_INV_E), + [ + 1.621_924_538_347_016_874_2, + 0.388_691_451_325_166_635_64, + 0.004_575_064_267_850_351_111_1, + 5.538_467_214_864_449_887_3e-6, + ], + [ + 1.0, + 0.065_219_460_735_182_414_183, + 0.000_478_827_607_890_225_089_40, + 3.809_482_814_629_240_109_9e-7, + ], + ) + } else { + // W <= 11.351, X_6 - rational_function( - sqrt(z - NEG_INV_E), - [ - 8.382_600_584_819_551_267_1, - 0.015_360_346_475_232_500_605, - 2.443_338_439_786_936_744_5e-6, - 4.185_680_326_411_854_963_9e-11, - ], - [ - 1.0, - 0.001_150_742_322_378_586_783_0, - 1.422_142_847_481_351_640_8e-7, - 1.873_917_202_662_012_263_7e-12, - ], - ) - } else if z <= 4.995_018_739_704_194_635_5e9 { - // W <= 19.368, X_9 + rational_function( + sqrt(z - NEG_INV_E), + [ + 3.621_899_608_569_591_996_9, + 0.148_846_467_548_801_598_69, + 0.000_424_696_224_099_984_031_46, + 1.279_017_971_037_421_684_6e-7, + ], + [ + 1.0, + 0.017_985_659_319_608_747_571, + 0.000_035_446_449_757_357_845_802, + 7.506_249_296_303_704_700_5e-9, + ], + ) + } + } else { + // W <= 13.928, X_7 - rational_function( - sqrt(z - NEG_INV_E), - [ - 10.996_674_803_992_550_975, - 0.004_394_213_889_867_383_245_6, - 1.596_666_535_484_677_802_6e-7, - 6.266_538_284_496_873_224_2e-13, - ], - [ - 1.0, - 0.000_273_837_576_757_036_474_31, - 8.015_706_231_969_030_420_9e-9, - 2.495_698_215_887_173_000_2e-14, - ], - ) - } else if z <= 9.791_115_441_672_696_027_7e10 { - // W <= 22.207, X_10 + rational_function( + sqrt(z - NEG_INV_E), + [ + 5.907_336_973_960_809_058_9, + 0.050_053_653_594_737_112_977, + 0.000_034_072_148_625_204_698_714, + 2.481_206_469_365_548_349_2e-9, + ], + [ + 1.0, + 0.004_655_899_001_684_321_048_8, + 2.344_944_586_080_881_205_0e-6, + 1.263_142_996_480_846_114_0e-10, + ], + ) + } + } else if z <= 2.702_564_027_724_190_315_7e8 { + // W <= 16.605, X_8 - rational_function( - sqrt(z - NEG_INV_E), - [ - 13.719_833_802_350_861_158, - 0.001_187_444_380_520_229_142_9, - 9.630_338_120_016_467_597_1e-9, - 8.443_452_423_226_162_880_8e-15, - ], - [ - 1.0, - 0.000_063_056_372_424_395_349_289, - 4.235_876_603_109_884_029_1e-10, - 3.020_540_500_543_447_430_4e-16, - ], - ) - } else if z <= 2.025_975_385_630_209_968_3e12 { - // W <= 25.114, X_11 + rational_function( + sqrt(z - NEG_INV_E), + [ + 8.382_600_584_819_551_267_1, + 0.015_360_346_475_232_500_605, + 2.443_338_439_786_936_744_5e-6, + 4.185_680_326_411_854_963_9e-11, + ], + [ + 1.0, + 0.001_150_742_322_378_586_783_0, + 1.422_142_847_481_351_640_8e-7, + 1.873_917_202_662_012_263_7e-12, + ], + ) + } else { + // W <= 19.368, X_9 - rational_function( - sqrt(z - NEG_INV_E), - [ - 16.533_119_481_561_616_886, - 0.000_305_831_257_519_080_406_46, - 5.411_294_663_372_009_873_1e-10, - 1.034_713_033_370_471_127_5e-16, - ], - [ - 1.0, - 0.000_014_099_161_212_376_339_883, - 2.112_109_541_235_469_506_3e-11, - 3.352_692_715_745_246_951_5e-18, - ], - ) - } else if z <= 4.407_744_425_147_793_893_9e13 { - // W <= 28.082, X_12 + rational_function( + sqrt(z - NEG_INV_E), + [ + 10.996_674_803_992_550_975, + 0.004_394_213_889_867_383_245_6, + 1.596_666_535_484_677_802_6e-7, + 6.266_538_284_496_873_224_2e-13, + ], + [ + 1.0, + 0.000_273_837_576_757_036_474_31, + 8.015_706_231_969_030_420_9e-9, + 2.495_698_215_887_173_000_2e-14, + ], + ) + } + } else if z <= 2.393_255_260_235_983_768_7e16 { + if z <= 4.407_744_425_147_793_893_9e13 { + if z <= 9.791_115_441_672_696_027_7e10 { + // W <= 22.207, X_10 - rational_function( - sqrt(z - NEG_INV_E), - [ - 19.423_519_260_478_579_324, - 0.000_075_559_269_761_977_808_773, - 2.853_002_312_078_307_598_4e-11, - 1.162_962_709_646_357_956_9e-18, - ], - [ - 1.0, - 3.069_209_278_972_785_565_7e-6, - 9.986_661_305_031_146_547_5e-13, - 3.437_671_711_698_391_503_8e-20, - ], - ) - } else if z <= 1.004_838_215_057_150_448_5e15 { - // W <= 31.106, X_13 + rational_function( + sqrt(z - NEG_INV_E), + [ + 13.719_833_802_350_861_158, + 0.001_187_444_380_520_229_142_9, + 9.630_338_120_016_467_597_1e-9, + 8.443_452_423_226_162_880_8e-15, + ], + [ + 1.0, + 0.000_063_056_372_424_395_349_289, + 4.235_876_603_109_884_029_1e-10, + 3.020_540_500_543_447_430_4e-16, + ], + ) + } else if z <= 2.025_975_385_630_209_968_3e12 { + // W <= 25.114, X_11 - rational_function( - sqrt(z - NEG_INV_E), - [ - 22.381_576_050_041_913_103, - 0.000_017_994_724_029_162_552_053, - 1.419_487_642_040_223_025_9e-12, - 1.207_110_515_438_582_986_7e-20, - ], - [ - 1.0, - 6.518_396_280_665_677_034_0e-7, - 4.495_866_571_281_253_615_0e-14, - 3.275_542_924_502_358_153_2e-22, - ], - ) - } else if z <= 2.393_255_260_235_983_768_7e16 { - // W <= 34.182, X_14 + rational_function( + sqrt(z - NEG_INV_E), + [ + 16.533_119_481_561_616_886, + 0.000_305_831_257_519_080_406_46, + 5.411_294_663_372_009_873_1e-10, + 1.034_713_033_370_471_127_5e-16, + ], + [ + 1.0, + 0.000_014_099_161_212_376_339_883, + 2.112_109_541_235_469_506_3e-11, + 3.352_692_715_745_246_951_5e-18, + ], + ) + } else { + // W <= 28.082, X_12 - rational_function( - sqrt(z - NEG_INV_E), - [ - 25.400_105_417_092_068_195, - 4.146_737_838_657_924_601_5e-6, - 6.696_269_721_968_179_153_9e-14, - 1.163_790_515_950_647_608_2e-22, - ], - [ - 1.0, - 1.352_980_135_703_041_681_9e-7, - 1.933_608_178_532_575_035_3e-15, - 2.914_939_619_981_625_763_6e-24, - ], - ) - } else if z <= 5.939_799_659_746_575_434_6e17 { - // W <= 37.306, X_15 + rational_function( + sqrt(z - NEG_INV_E), + [ + 19.423_519_260_478_579_324, + 0.000_075_559_269_761_977_808_773, + 2.853_002_312_078_307_598_4e-11, + 1.162_962_709_646_357_956_9e-18, + ], + [ + 1.0, + 3.069_209_278_972_785_565_7e-6, + 9.986_661_305_031_146_547_5e-13, + 3.437_671_711_698_391_503_8e-20, + ], + ) + } + } else { + if z <= 1.004_838_215_057_150_448_5e15 { + // W <= 31.106, X_13 - rational_function( - sqrt(z - NEG_INV_E), - [ - 28.473_455_626_379_917_708, - 9.274_682_469_309_405_901_9e-7, - 3.006_899_015_933_680_528_7e-15, - 1.047_355_759_182_202_785_2e-24, - ], - [ - 1.0, - 2.748_648_970_452_172_911_0e-8, - 7.967_898_707_103_613_339_8e-17, - 2.433_166_636_706_152_936_6e-26, - ], - ) - } else if z <= 1.532_693_858_990_176_659_2e19 { - // W <= 40.475, X_16 + rational_function( + sqrt(z - NEG_INV_E), + [ + 22.381_576_050_041_913_103, + 0.000_017_994_724_029_162_552_053, + 1.419_487_642_040_223_025_9e-12, + 1.207_110_515_438_582_986_7e-20, + ], + [ + 1.0, + 6.518_396_280_665_677_034_0e-7, + 4.495_866_571_281_253_615_0e-14, + 3.275_542_924_502_358_153_2e-22, + ], + ) + } else { + // W <= 34.182, X_14 - rational_function( - sqrt(z - NEG_INV_E), - [ - 31.597_055_437_846_359_378, - 2.018_422_527_678_632_549_6e-7, - 1.289_578_819_651_290_889_8e-16, - 8.836_117_471_410_109_815_9e-27, - ], - [ - 1.0, - 5.472_394_512_609_849_720_2e-9, - 3.153_772_917_992_919_175_8e-18, - 1.912_203_513_257_167_002_2e-28, - ], - ) + rational_function( + sqrt(z - NEG_INV_E), + [ + 25.400_105_417_092_068_195, + 4.146_737_838_657_924_601_5e-6, + 6.696_269_721_968_179_153_9e-14, + 1.163_790_515_950_647_608_2e-22, + ], + [ + 1.0, + 1.352_980_135_703_041_681_9e-7, + 1.933_608_178_532_575_035_3e-15, + 2.914_939_619_981_625_763_6e-24, + ], + ) + } + } } else if z <= 4.103_565_939_888_539_413_5e20 { - // W <= 43.687, X_17 + if z <= 1.532_693_858_990_176_659_2e19 { + if z <= 5.939_799_659_746_575_434_6e17 { + // W <= 37.306, X_15 - rational_function( - sqrt(z - NEG_INV_E), - [ - 34.767_124_490_414_517_175, - 4.283_079_924_069_894_293_2e-8, - 5.297_588_412_103_653_440_7e-18, - 7.014_551_539_215_877_537_8e-29, - ], - [ - 1.0, - 1.068_930_112_769_633_243_6e-9, - 1.201_669_906_178_942_295_1e-19, - 1.419_524_481_080_098_523_5e-30, - ], - ) - } else if z <= 2.172_370_661_049_060_431_7e141 { - // W <= 319.673, U_18 + rational_function( + sqrt(z - NEG_INV_E), + [ + 28.473_455_626_379_917_708, + 9.274_682_469_309_405_901_9e-7, + 3.006_899_015_933_680_528_7e-15, + 1.047_355_759_182_202_785_2e-24, + ], + [ + 1.0, + 2.748_648_970_452_172_911_0e-8, + 7.967_898_707_103_613_339_8e-17, + 2.433_166_636_706_152_936_6e-26, + ], + ) + } else { + // W <= 40.475, X_16 - rational_function( - ln(z), - [ - -0.607_023_733_718_461_924_76, - 0.698_287_163_225_269_836_51, - 0.075_795_135_081_824_754_660, - 0.000_516_692_560_817_372_468_14, - ], - [ - 1.0, - 0.079_048_429_972_306_018_289, - 0.000_517_609_908_992_059_784_68, - -4.243_840_393_198_106_978_6e-10, - ], - ) + rational_function( + sqrt(z - NEG_INV_E), + [ + 31.597_055_437_846_359_378, + 2.018_422_527_678_632_549_6e-7, + 1.289_578_819_651_290_889_8e-16, + 8.836_117_471_410_109_815_9e-27, + ], + [ + 1.0, + 5.472_394_512_609_849_720_2e-9, + 3.153_772_917_992_919_175_8e-18, + 1.912_203_513_257_167_002_2e-28, + ], + ) + } + } else { + // W <= 43.687, X_17 + + rational_function( + sqrt(z - NEG_INV_E), + [ + 34.767_124_490_414_517_175, + 4.283_079_924_069_894_293_2e-8, + 5.297_588_412_103_653_440_7e-18, + 7.014_551_539_215_877_537_8e-29, + ], + [ + 1.0, + 1.068_930_112_769_633_243_6e-9, + 1.201_669_906_178_942_295_1e-19, + 1.419_524_481_080_098_523_5e-30, + ], + ) + } } else if z < f64::INFINITY { - // U_19 + if z <= 2.172_370_661_049_060_431_7e141 { + // W <= 319.673, U_18 + + rational_function( + ln(z), + [ + -0.607_023_733_718_461_924_76, + 0.698_287_163_225_269_836_51, + 0.075_795_135_081_824_754_660, + 0.000_516_692_560_817_372_468_14, + ], + [ + 1.0, + 0.079_048_429_972_306_018_289, + 0.000_517_609_908_992_059_784_68, + -4.243_840_393_198_106_978_6e-10, + ], + ) + } else { + // U_19 - rational_function( - ln(z), - [ - -3.132_005_602_886_366_119_2, - 0.948_894_657_265_326_009_02, - 0.008_317_815_296_164_439_321_7, - 5.558_784_815_783_349_289_0e-6, - ], - [ - 1.0, - 0.008_365_681_867_773_005_876_9, - 5.559_715_493_597_327_536_4e-6, - -3.748_153_583_315_120_222_2e-14, - ], - ) + rational_function( + ln(z), + [ + -3.132_005_602_886_366_119_2, + 0.948_894_657_265_326_009_02, + 0.008_317_815_296_164_439_321_7, + 5.558_784_815_783_349_289_0e-6, + ], + [ + 1.0, + 0.008_365_681_867_773_005_876_9, + 5.559_715_493_597_327_536_4e-6, + -3.748_153_583_315_120_222_2e-14, + ], + ) + } } else if z.is_nan() { f64::NAN } else { diff --git a/src/sw0f.rs b/src/sw0f.rs index 8cc19a48..fdb4b51d 100644 --- a/src/sw0f.rs +++ b/src/sw0f.rs @@ -66,169 +66,195 @@ pub fn lambert_w0f(z: f32) -> f32 { -1.0 } else if z == 0.0 { 0.0 - } else if z <= 2.008_217_8 { - // W <= 0.854, X_1 - - rational_function( - sqrt(z - NEG_INV_E), - [ - -0.999_999_94, - 0.055_730_052, - 2.126_973_2, - 0.813_511_25, - 0.016_324_88, - ], - [1.0, 2.275_906_6, 1.367_597, 0.186_158_24], - ) - } else if z <= 30.539_143 { - // W <= 2.502, X_2 - - rational_function( - sqrt(z - NEG_INV_E), - [-0.985_519_7, 1.077_497_6, 0.871_751, 0.054_352_727], - [1.0, 1.186_101_4, 0.249_962_99, 0.006_881_369], - ) - } else if z <= 371.669_83 { - // W <= 4.430, X_3 - - rational_function( - sqrt(z - NEG_INV_E), - [-0.762_397_1, 1.231_773_1, 0.243_424_48, 0.004_320_601_5], - [1.0, 0.579_386_23, 0.046_601_43, 0.000_435_128_17], - ) - } else if z <= 4_705.919 { - // W <= 6.574, X_4 - - rational_function( - sqrt(z - NEG_INV_E), - [0.085_801_244, 0.825_397_97, 0.039_781_96, 0.000_187_855_8], - [1.0, 0.213_380_77, 0.005_462_672, 0.000_015_449_534], - ) - } else if z <= 64_640.797 { - // W <= 8.892, X_5 - - rational_function( - sqrt(z - NEG_INV_E), - [1.621_924_5, 0.388_691_46, 0.004_575_064_4, 5.538_467e-6], - [1.0, 0.065_219_46, 0.000_478_827_6, 3.809_482_8e-7], - ) - } else if z <= 965_649.030_871_163_2 { - // W <= 11.351, X_6 - - rational_function( - sqrt(z - NEG_INV_E), - [3.621_899_6, 0.148_846_46, 0.000_424_696_22, 1.279_018e-7], - [1.0, 0.017_985_659, 0.000_035_446_45, 7.506_249e-9], - ) - } else if z <= 1.559_333_4e7 { - // W <= 13.928, X_7 - - rational_function( - sqrt(z - NEG_INV_E), - [5.907_337, 0.050_053_652, 0.000_034_072_15, 2.481_206_6e-9], - [1.0, 0.004_655_899, 2.344_944_5e-6, 1.263_143e-10], - ) - } else if z <= 2.702_564_2e8 { - // W <= 16.605, X_8 - - rational_function( - sqrt(z - NEG_INV_E), - [8.382_601, 0.015_360_346, 2.443_338_4e-6, 4.185_680_3e-11], - [1.0, 0.001_150_742_3, 1.422_142_9e-7, 1.873_917_3e-12], - ) } else if z <= 4.995_019e9 { - // W <= 19.368, X_9 - - rational_function( - sqrt(z - NEG_INV_E), - [10.996_675, 0.004_394_213_7, 1.596_666_6e-7, 6.266_538_4e-13], - [1.0, 0.000_273_837_56, 8.015_706e-9, 2.495_698_2e-14], - ) - } else if z <= 9.791_115e10 { - // W <= 22.207, X_10 - - rational_function( - sqrt(z - NEG_INV_E), - [13.719_833, 0.001_187_444_4, 9.630_338e-9, 8.443_452e-15], - [1.0, 0.000_063_056_37, 4.235_876_6e-10, 3.020_540_4e-16], - ) - } else if z <= 2.025_975_4e12 { - // W <= 25.114, X_11 - - rational_function( - sqrt(z - NEG_INV_E), - [16.533_12, 0.000_305_831_26, 5.411_295e-10, 1.034_713e-16], - [1.0, 0.000_014_099_161_5, 2.112_109_6e-11, 3.352_692_7e-18], - ) - } else if z <= 4.407_744_6e13 { - // W <= 28.082, X_12 - - rational_function( - sqrt(z - NEG_INV_E), - [ - 19.423_52, - 0.000_075_559_27, - 2.853_002_4e-11, - 1.162_962_7e-18, - ], - [1.0, 3.069_209_2e-6, 9.986_661e-13, 3.437_671_8e-20], - ) - } else if z <= 1.004_838_2e15 { - // W <= 31.106, X_13 - - rational_function( - sqrt(z - NEG_INV_E), - [ - 22.381_577, - 0.000_017_994_724, - 1.419_487_7e-12, - 1.207_110_5e-20, - ], - [1.0, 6.518_396e-7, 4.495_866_6e-14, 3.275_542_8e-22], - ) - } else if z <= 2.393_255_2e16 { - // W <= 34.182, X_14 - - rational_function( - sqrt(z - NEG_INV_E), - [25.400_105, 4.146_738e-6, 6.696_27e-14, 1.163_790_5e-22], - [1.0, 1.352_980_1e-7, 1.933_608e-15, 2.914_939_7e-24], - ) - } else if z <= 5.939_799_6e17 { - // W <= 37.306, X_15 - - rational_function( - sqrt(z - NEG_INV_E), - [28.473_455, 9.274_682_5e-7, 3.006_899e-15, 1.047_355_7e-24], - [1.0, 2.748_649e-8, 7.967_898_6e-17, 2.433_166_6e-26], - ) - } else if z <= 1.532_693_8e19 { - // W <= 40.475, X_16 - - rational_function( - sqrt(z - NEG_INV_E), - [31.597_055, 2.018_422_5e-7, 1.289_578_8e-16, 8.836_117e-27], - [1.0, 5.472_394_5e-9, 3.153_773e-18, 1.912_203_5e-28], - ) - } else if z <= 4.103_566e20 { - // W <= 43.687, X_17 - - rational_function( - sqrt(z - NEG_INV_E), - [34.767_124, 4.283_08e-8, 5.297_588_5e-18, 7.014_551_6e-29], - [1.0, 1.068_930_2e-9, 1.201_67e-19, 1.419_524_4e-30], - ) - } else if z < f32::INFINITY { - // W <= 319.673, U_18 - - rational_function( - ln(z), - [-0.607_023_7, 0.698_287_2, 0.075_795_14, 0.000_516_692_6], - [1.0, 0.079_048_43, 0.000_517_609_94, -4.243_840_3e-10], - ) - } else if z.is_nan() { - f32::NAN + if z <= 64_640.797 { + if z <= 371.669_83 { + if z <= 2.008_217_8 { + // W <= 0.854, X_1 + + rational_function( + sqrt(z - NEG_INV_E), + [ + -0.999_999_94, + 0.055_730_052, + 2.126_973_2, + 0.813_511_25, + 0.016_324_88, + ], + [1.0, 2.275_906_6, 1.367_597, 0.186_158_24], + ) + } else if z <= 30.539_143 { + // W <= 2.502, X_2 + + rational_function( + sqrt(z - NEG_INV_E), + [-0.985_519_7, 1.077_497_6, 0.871_751, 0.054_352_727], + [1.0, 1.186_101_4, 0.249_962_99, 0.006_881_369], + ) + } else { + // W <= 4.430, X_3 + + rational_function( + sqrt(z - NEG_INV_E), + [-0.762_397_1, 1.231_773_1, 0.243_424_48, 0.004_320_601_5], + [1.0, 0.579_386_23, 0.046_601_43, 0.000_435_128_17], + ) + } + } else if z <= 4_705.919 { + // W <= 6.574, X_4 + + rational_function( + sqrt(z - NEG_INV_E), + [0.085_801_244, 0.825_397_97, 0.039_781_96, 0.000_187_855_8], + [1.0, 0.213_380_77, 0.005_462_672, 0.000_015_449_534], + ) + } else { + // W <= 8.892, X_5 + + rational_function( + sqrt(z - NEG_INV_E), + [1.621_924_5, 0.388_691_46, 0.004_575_064_4, 5.538_467e-6], + [1.0, 0.065_219_46, 0.000_478_827_6, 3.809_482_8e-7], + ) + } + } else { + if z <= 2.702_564_2e8 { + if z <= 1.559_333_4e7 { + if z <= 965_649.030_871_163_2 { + // W <= 11.351, X_6 + + rational_function( + sqrt(z - NEG_INV_E), + [3.621_899_6, 0.148_846_46, 0.000_424_696_22, 1.279_018e-7], + [1.0, 0.017_985_659, 0.000_035_446_45, 7.506_249e-9], + ) + } else { + // W <= 13.928, X_7 + + rational_function( + sqrt(z - NEG_INV_E), + [5.907_337, 0.050_053_652, 0.000_034_072_15, 2.481_206_6e-9], + [1.0, 0.004_655_899, 2.344_944_5e-6, 1.263_143e-10], + ) + } + } else { + // W <= 16.605, X_8 + + rational_function( + sqrt(z - NEG_INV_E), + [8.382_601, 0.015_360_346, 2.443_338_4e-6, 4.185_680_3e-11], + [1.0, 0.001_150_742_3, 1.422_142_9e-7, 1.873_917_3e-12], + ) + } + } else { + // W <= 19.368, X_9 + + rational_function( + sqrt(z - NEG_INV_E), + [10.996_675, 0.004_394_213_7, 1.596_666_6e-7, 6.266_538_4e-13], + [1.0, 0.000_273_837_56, 8.015_706e-9, 2.495_698_2e-14], + ) + } + } } else { - f32::INFINITY + if z <= 5.939_799_6e17 { + if z <= 1.004_838_2e15 { + if z <= 4.407_744_6e13 { + if z <= 2.025_975_4e12 { + if z <= 9.791_115e10 { + // W <= 22.207, X_10 + + rational_function( + sqrt(z - NEG_INV_E), + [13.719_833, 0.001_187_444_4, 9.630_338e-9, 8.443_452e-15], + [1.0, 0.000_063_056_37, 4.235_876_6e-10, 3.020_540_4e-16], + ) + } else { + // W <= 25.114, X_11 + + rational_function( + sqrt(z - NEG_INV_E), + [16.533_12, 0.000_305_831_26, 5.411_295e-10, 1.034_713e-16], + [1.0, 0.000_014_099_161_5, 2.112_109_6e-11, 3.352_692_7e-18], + ) + } + } else { + // W <= 28.082, X_12 + + rational_function( + sqrt(z - NEG_INV_E), + [ + 19.423_52, + 0.000_075_559_27, + 2.853_002_4e-11, + 1.162_962_7e-18, + ], + [1.0, 3.069_209_2e-6, 9.986_661e-13, 3.437_671_8e-20], + ) + } + } else { + // W <= 31.106, X_13 + + rational_function( + sqrt(z - NEG_INV_E), + [ + 22.381_577, + 0.000_017_994_724, + 1.419_487_7e-12, + 1.207_110_5e-20, + ], + [1.0, 6.518_396e-7, 4.495_866_6e-14, 3.275_542_8e-22], + ) + } + } else if z <= 2.393_255_2e16 { + // W <= 34.182, X_14 + + rational_function( + sqrt(z - NEG_INV_E), + [25.400_105, 4.146_738e-6, 6.696_27e-14, 1.163_790_5e-22], + [1.0, 1.352_980_1e-7, 1.933_608e-15, 2.914_939_7e-24], + ) + } else { + // W <= 37.306, X_15 + + rational_function( + sqrt(z - NEG_INV_E), + [28.473_455, 9.274_682_5e-7, 3.006_899e-15, 1.047_355_7e-24], + [1.0, 2.748_649e-8, 7.967_898_6e-17, 2.433_166_6e-26], + ) + } + } else { + if z <= 4.103_566e20 { + if z <= 1.532_693_8e19 { + // W <= 40.475, X_16 + + rational_function( + sqrt(z - NEG_INV_E), + [31.597_055, 2.018_422_5e-7, 1.289_578_8e-16, 8.836_117e-27], + [1.0, 5.472_394_5e-9, 3.153_773e-18, 1.912_203_5e-28], + ) + } else { + // W <= 43.687, X_17 + + rational_function( + sqrt(z - NEG_INV_E), + [34.767_124, 4.283_08e-8, 5.297_588_5e-18, 7.014_551_6e-29], + [1.0, 1.068_930_2e-9, 1.201_67e-19, 1.419_524_4e-30], + ) + } + } else if z < f32::INFINITY { + // W <= 319.673, U_18 + + rational_function( + ln(z), + [-0.607_023_7, 0.698_287_2, 0.075_795_14, 0.000_516_692_6], + [1.0, 0.079_048_43, 0.000_517_609_94, -4.243_840_3e-10], + ) + } else if z.is_nan() { + f32::NAN + } else { + f32::INFINITY + } + } } } diff --git a/src/swm1.rs b/src/swm1.rs index 3773f322..f108cd7b 100644 --- a/src/swm1.rs +++ b/src/swm1.rs @@ -66,186 +66,194 @@ pub fn sp_lambert_wm1(z: f64) -> f64 { f64::NAN } else if z == NEG_INV_E { -1.0 - } else if z <= -0.207_293_777_640_384_138_99 { - // W >= -2.483, Y_-1 - - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -6.383_722_822_801_905_640_2, - -74.968_653_259_594_050_421, - -19.714_821_552_432_482_711, - 70.677_326_667_809_236_886, - ], - [ - 1.0, - 24.295_836_951_878_692_244, - 64.112_460_611_386_039_710, - 17.994_497_369_039_313_585, - ], - ) - } else if z <= -0.071_507_705_083_841_949_275 { - // W >= -4.032, Y_-2 - - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -7.723_328_481_229_978_044_5, - -352.484_690_970_429_148_66, - -1_242.008_890_368_567_715_4, - 1_171.647_596_062_049_903_3, - ], - [ - 1.0, - 77.681_242_588_997_413_555, - 648.564_312_140_752_460_23, - 566.701_549_764_361_648_18, - ], - ) - } else if z <= -0.020_704_412_621_717_479_786 { - // W >= -5.600, Y_-3 + } else if z <= -0.001_367_466_989_250_804_268_7 { + if z <= -0.207_293_777_640_384_138_99 { + // W >= -2.483, Y_-1 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -9.137_773_141_758_154_626_2, - -1_644.724_479_150_888_940_7, - -28_105.096_098_779_681_470, - 3_896.079_810_390_921_391_5, - ], - [ - 1.0, - 272.375_261_351_239_732_61, - 7_929.224_261_291_349_736_3, - 23_980.122_860_821_312_510, - ], - ) - } else if z <= -0.005_480_012_945_209_443_573_3 { - // W >= -7.178, Y_-4 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -6.383_722_822_801_905_640_2, + -74.968_653_259_594_050_421, + -19.714_821_552_432_482_711, + 70.677_326_667_809_236_886, + ], + [ + 1.0, + 24.295_836_951_878_692_244, + 64.112_460_611_386_039_710, + 17.994_497_369_039_313_585, + ], + ) + } else if z <= -0.071_507_705_083_841_949_275 { + // W >= -4.032, Y_-2 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -10.603_388_239_566_372_960, - -7_733.348_521_498_647_619_3, - -575_482.407_079_644_221_74, - -2.154_552_604_188_978_313_2e6, - ], - [ - 1.0, - 1_021.793_856_606_681_728_7, - 111_300.229_154_865_209_18, - 1.261_425_640_008_844_218_6e6, - ], - ) - } else if z <= -0.001_367_466_989_250_804_268_7 { - // W >= -8.766, Y_-5 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -7.723_328_481_229_978_044_5, + -352.484_690_970_429_148_66, + -1_242.008_890_368_567_715_4, + 1_171.647_596_062_049_903_3, + ], + [ + 1.0, + 77.681_242_588_997_413_555, + 648.564_312_140_752_460_23, + 566.701_549_764_361_648_18, + ], + ) + } else if z <= -0.020_704_412_621_717_479_786 { + // W >= -5.600, Y_-3 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -12.108_699_273_343_437_997, - -36_896.535_108_166_377_289, - -1.183_112_672_010_605_357_4e7, - -2.756_583_081_394_092_428_6e8, - ], - [ - 1.0, - 4_044.975_306_488_070_069_7, - 1.741_827_761_903_000_471_3e6, - 7.843_690_738_080_689_728_0e7, - ], - ) - } else if z <= -0.000_326_142_267_310_725_659_15 { - // W >= -10.367, Y_-6 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -9.137_773_141_758_154_626_2, + -1_644.724_479_150_888_940_7, + -28_105.096_098_779_681_470, + 3_896.079_810_390_921_391_5, + ], + [ + 1.0, + 272.375_261_351_239_732_61, + 7_929.224_261_291_349_736_3, + 23_980.122_860_821_312_510, + ], + ) + } else if z <= -0.005_480_012_945_209_443_573_3 { + // W >= -7.178, Y_-4 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -13.646_761_936_746_191_398, - -179_086.115_857_151_485_53, - -2.508_463_493_521_464_102_0e8, - -2.934_370_049_483_371_501_9e10, - ], - [ - 1.0, - 16_743.826_607_737_142_476, - 2.980_965_094_601_174_304_7e7, - 5.573_951_481_695_800_120_2e9, - ], - ) - } else if z <= -0.000_074_906_612_036_101_435_088 { - // W >= -11.983, Y_-7 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -10.603_388_239_566_372_960, + -7_733.348_521_498_647_619_3, + -575_482.407_079_644_221_74, + -2.154_552_604_188_978_313_2e6, + ], + [ + 1.0, + 1_021.793_856_606_681_728_7, + 111_300.229_154_865_209_18, + 1.261_425_640_008_844_218_6e6, + ], + ) + } else { + // W >= -8.766, Y_-5 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [ - -15.212_958_142_001_646_273, - -884_954.687_981_689_538_07, - -5.529_815_437_863_347_537_9e9, - -3.093_418_743_531_466_820_3e12, - ], - [ - 1.0, - 72_009.255_525_210_120_244, - 5.505_900_767_187_580_347_0e8, - 4.432_489_486_700_034_049_5e11, - ], - ) + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -12.108_699_273_343_437_997, + -36_896.535_108_166_377_289, + -1.183_112_672_010_605_357_4e7, + -2.756_583_081_394_092_428_6e8, + ], + [ + 1.0, + 4_044.975_306_488_070_069_7, + 1.741_827_761_903_000_471_3e6, + 7.843_690_738_080_689_728_0e7, + ], + ) + } } else if z <= -1.096_244_452_641_099_391_9e-19 { - // W >= -47.518, V_-8 + if z <= -0.000_074_906_612_036_101_435_088 { + if z <= -0.000_326_142_267_310_725_659_15 { + // W >= -10.367, Y_-6 + + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -13.646_761_936_746_191_398, + -179_086.115_857_151_485_53, + -2.508_463_493_521_464_102_0e8, + -2.934_370_049_483_371_501_9e10, + ], + [ + 1.0, + 16_743.826_607_737_142_476, + 2.980_965_094_601_174_304_7e7, + 5.573_951_481_695_800_120_2e9, + ], + ) + } else { + // W >= -11.983, Y_-7 - rational_function( - ln(-z), - [ - -0.032_401_163_177_791_086_145, - 2.028_194_214_474_250_266_7, - -0.527_524_312_425_927_139_92, - 0.017_340_294_772_717_582_230, - ], - [ - 1.0, - -0.450_042_744_438_917_372_96, - 0.017_154_705_753_566_296_216, - -5.243_819_620_271_835_822_6e-7, - ], - ) - } else if z <= -2.509_609_929_994_590_145_5e-136 { - // W >= -317.993, V_-9 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [ + -15.212_958_142_001_646_273, + -884_954.687_981_689_538_07, + -5.529_815_437_863_347_537_9e9, + -3.093_418_743_531_466_820_3e12, + ], + [ + 1.0, + 72_009.255_525_210_120_244, + 5.505_900_767_187_580_347_0e8, + 4.432_489_486_700_034_049_5e11, + ], + ) + } + } else { + // W >= -47.518, V_-8 - rational_function( - ln(-z), - [ - -1.441_124_659_581_209_802_9, - 1.281_926_963_998_047_809_5, - -0.074_979_356_113_812_324_952, - 0.000_476_363_091_620_691_506_55, - ], - [ - 1.0, - -0.072_000_873_723_868_650_424, - 0.000_475_489_329_895_970_299_52, - -4.171_497_924_754_684_061_9e-10, - ], - ) + rational_function( + ln(-z), + [ + -0.032_401_163_177_791_086_145, + 2.028_194_214_474_250_266_7, + -0.527_524_312_425_927_139_92, + 0.017_340_294_772_717_582_230, + ], + [ + 1.0, + -0.450_042_744_438_917_372_96, + 0.017_154_705_753_566_296_216, + -5.243_819_620_271_835_822_6e-7, + ], + ) + } } else if z < 0.0 { - // V_-10 + if z <= -2.509_609_929_994_590_145_5e-136 { + // W >= -317.993, V_-9 + + rational_function( + ln(-z), + [ + -1.441_124_659_581_209_802_9, + 1.281_926_963_998_047_809_5, + -0.074_979_356_113_812_324_952, + 0.000_476_363_091_620_691_506_55, + ], + [ + 1.0, + -0.072_000_873_723_868_650_424, + 0.000_475_489_329_895_970_299_52, + -4.171_497_924_754_684_061_9e-10, + ], + ) + } else { + // V_-10 - rational_function( - ln(-z), - [ - -3.310_876_091_171_044_755_4, - 1.050_067_880_993_517_477_5, - -0.008_236_749_582_134_320_494_0, - 5.528_956_159_491_018_844_1e-6, - ], - [ - 1.0, - -0.008_189_272_743_331_551_186_7, - 5.528_007_600_971_195_403_2e-6, - -3.922_277_308_457_406_059_4e-14, - ], - ) + rational_function( + ln(-z), + [ + -3.310_876_091_171_044_755_4, + 1.050_067_880_993_517_477_5, + -0.008_236_749_582_134_320_494_0, + 5.528_956_159_491_018_844_1e-6, + ], + [ + 1.0, + -0.008_189_272_743_331_551_186_7, + 5.528_007_600_971_195_403_2e-6, + -3.922_277_308_457_406_059_4e-14, + ], + ) + } } else if z == 0.0 { f64::NEG_INFINITY } else { diff --git a/src/swm1f.rs b/src/swm1f.rs index a465626c..6da248b1 100644 --- a/src/swm1f.rs +++ b/src/swm1f.rs @@ -64,70 +64,78 @@ pub fn lambert_wm1f(z: f32) -> f32 { f32::NAN } else if z == NEG_INV_E { -1.0 - } else if z <= -0.207_293_78 { - // W >= -2.483, Y_-1 + } else if z <= -0.001_367_467 { + if z <= -0.020_704_413 { + if z <= -0.207_293_78 { + // W >= -2.483, Y_-1 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-6.383_723, -74.968_65, -19.714_82, 70.677_33], - [1.0, 24.295_837, 64.112_46, 17.994_497], - ) - } else if z <= -0.071_507_71 { - // W >= -4.032, Y_-2 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-6.383_723, -74.968_65, -19.714_82, 70.677_33], + [1.0, 24.295_837, 64.112_46, 17.994_497], + ) + } else if z <= -0.071_507_71 { + // W >= -4.032, Y_-2 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-7.723_328_6, -352.484_68, -1_242.008_9, 1_171.647_6], - [1.0, 77.681_244, 648.564_33, 566.701_54], - ) - } else if z <= -0.020_704_413 { - // W >= -5.600, Y_-3 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-7.723_328_6, -352.484_68, -1_242.008_9, 1_171.647_6], + [1.0, 77.681_244, 648.564_33, 566.701_54], + ) + } else { + // W >= -5.600, Y_-3 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-9.137_773_5, -1_644.724_5, -28_105.096, 3_896.079_8], - [1.0, 272.375_27, 7_929.224, 23_980.123], - ) - } else if z <= -0.005_480_013 { - // W >= -7.178, Y_-4 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-9.137_773_5, -1_644.724_5, -28_105.096, 3_896.079_8], + [1.0, 272.375_27, 7_929.224, 23_980.123], + ) + } + } else if z <= -0.005_480_013 { + // W >= -7.178, Y_-4 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-10.603_388, -7_733.348_6, -575_482.44, -2.154_552_5e6], - [1.0, 1_021.793_9, 111_300.23, 1.261_425_6e6], - ) - } else if z <= -0.001_367_467 { - // W >= -8.766, Y_-5 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-10.603_388, -7_733.348_6, -575_482.44, -2.154_552_5e6], + [1.0, 1_021.793_9, 111_300.23, 1.261_425_6e6], + ) + } else { + // W >= -8.766, Y_-5 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-12.108_699, -36_896.535, -1.183_112_7e7, -2.756_583e8], - [1.0, 4_044.975_3, 1.741_827_8e6, 7.843_690_4e7], - ) - } else if z <= -0.000_326_142_27 { - // W >= -10.367, Y_-6 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-12.108_699, -36_896.535, -1.183_112_7e7, -2.756_583e8], + [1.0, 4_044.975_3, 1.741_827_8e6, 7.843_690_4e7], + ) + } + } else if z <= -1.096_244_5e-19 { + if z <= -0.000_074_906_61 { + if z <= -0.000_326_142_27 { + // W >= -10.367, Y_-6 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-13.646_762, -179_086.11, -2.508_463_5e8, -2.934_37e10], - [1.0, 16_743.826, 2.980_965e7, 5.573_951_5e9], - ) - } else if z <= -0.000_074_906_61 { - // W >= -11.983, Y_-7 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-13.646_762, -179_086.11, -2.508_463_5e8, -2.934_37e10], + [1.0, 16_743.826, 2.980_965e7, 5.573_951_5e9], + ) + } else { + // W >= -11.983, Y_-7 - rational_function( - -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), - [-15.212_958, -884_954.7, -5.529_815_6e9, -3.093_418_7e12], - [1.0, 72_009.26, 5.505_901e8, 4.432_489_3e11], - ) - } else if z <= -1.096_244_5e-19 { - // W >= -47.518, V_-8 + rational_function( + -z / (INV_SQRT_E + sqrt(z - NEG_INV_E)), + [-15.212_958, -884_954.7, -5.529_815_6e9, -3.093_418_7e12], + [1.0, 72_009.26, 5.505_901e8, 4.432_489_3e11], + ) + } + } else { + // W >= -47.518, V_-8 - rational_function( - ln(-z), - [-0.032_401_163, 2.028_194_2, -0.527_524_3, 0.017_340_295], - [1.0, -0.450_042_75, 0.017_154_707, -5.243_819_6e-7], - ) + rational_function( + ln(-z), + [-0.032_401_163, 2.028_194_2, -0.527_524_3, 0.017_340_295], + [1.0, -0.450_042_75, 0.017_154_707, -5.243_819_6e-7], + ) + } } else if z < 0.0 { // W >= -317.993, V_-9