semiflow 0.15.0-beta

no_std Rust PDE solver: evolution equations via Chernoff approximation of operator semigroups (heat, diffusion, Schrodinger)
Documentation
// cos(kπ/256) table: 7.071...e-1 = FRAC_1_SQRT_2, kept as literal for table consistency
#[allow(clippy::approx_constant)]
pub(crate) const CHEB_NODES_256: [f64; 257] = [
    1.0,
    0.999_924_701_839_144_5,
    0.999_698_818_696_204_2,
    0.999_322_384_588_349_5,
    0.998_795_456_205_172_4,
    0.998_118_112_900_149_2,
    0.997_290_456_678_690_2,
    0.996_312_612_182_778,
    0.995_184_726_672_196_9,
    0.993_906_970_002_356_1,
    0.992_479_534_598_71,
    0.990_902_635_427_78,
    0.989_176_509_964_781,
    0.987_301_418_157_858_4,
    0.985_277_642_388_941_2,
    0.983_105_487_431_216_3,
    0.980_785_280_403_230_4,
    0.978_317_370_719_627_7,
    0.975_702_130_038_528_6,
    0.972_939_952_205_560_2,
    0.970_031_253_194_544,
    0.966_976_471_044_852_1,
    0.963_776_065_795_439_8,
    0.960_430_519_415_565_8,
    0.956_940_335_732_208_8,
    0.953_306_040_354_193_9,
    0.949_528_180_593_036_7,
    0.945_607_325_380_521_3,
    0.941_544_065_183_020_8,
    0.937_339_011_912_575,
    0.932_992_798_834_739,
    0.928_506_080_473_215_6,
    0.923_879_532_511_286_7,
    0.919_113_851_690_057_8,
    0.914_209_755_703_530_7,
    0.909_167_983_090_522_4,
    0.903_989_293_123_443_3,
    0.898_674_465_693_953_8,
    0.893_224_301_195_515_3,
    0.887_639_620_402_853_9,
    0.881_921_264_348_355,
    0.876_070_094_195_406_6,
    0.870_086_991_108_711_5,
    0.863_972_856_121_586_8,
    0.857_728_610_000_272_1,
    0.851_355_193_105_265_2,
    0.844_853_565_249_707_1,
    0.838_224_705_554_838_1,
    0.831_469_612_302_545_2,
    0.824_589_302_785_025_3,
    0.817_584_813_151_583_7,
    0.810_457_198_252_594_8,
    0.803_207_531_480_644_9,
    0.795_836_904_608_883_6,
    0.788_346_427_626_606_3,
    0.780_737_228_572_094_5,
    0.773_010_453_362_737,
    0.765_167_265_622_459,
    0.757_208_846_506_484_6,
    0.749_136_394_523_459_4,
    0.740_951_125_354_959_1,
    0.732_654_271_672_412_8,
    0.724_247_082_951_467,
    0.715_730_825_283_818_6,
    0.707_106_781_186_547_6,
    0.698_376_249_408_972_9,
    0.689_540_544_737_066_9,
    0.680_600_997_795_453_1,
    0.671_558_954_847_018_3,
    0.662_415_777_590_171_8,
    0.653_172_842_953_776_8,
    0.643_831_542_889_791_5,
    0.634_393_284_163_645_5,
    0.624_859_488_142_386_5,
    0.615_231_590_580_626_8,
    0.605_511_041_404_325_5,
    0.595_699_304_492_433_5,
    0.585_797_857_456_438_9,
    0.575_808_191_417_845_3,
    0.565_731_810_783_613_2,
    0.555_570_233_019_602_3,
    0.545_324_988_422_046_5,
    0.534_997_619_887_097_3,
    0.524_589_682_678_468_8,
    0.514_102_744_193_221_7,
    0.503_538_383_725_717_6,
    0.492_898_192_229_784_1,
    0.482_183_772_079_122_83,
    0.471_396_736_825_997_8,
    0.460_538_710_958_24,
    0.449_611_329_654_606_6,
    0.438_616_238_538_527_7,
    0.427_555_093_430_282_2,
    0.416_429_560_097_637_3,
    0.405_241_314_004_989_86,
    0.393_992_040_061_048_1,
    0.382_683_432_365_089_84,
    0.371_317_193_951_837_6,
    0.359_895_036_534_988_3,
    0.348_418_680_249_434_5,
    0.336_889_853_392_220_05,
    0.325_310_292_162_263,
    0.313_681_740_398_891_6,
    0.302_005_949_319_228_2,
    0.290_284_677_254_462_33,
    0.278_519_689_385_053_06,
    0.266_712_757_474_898_4,
    0.254_865_659_604_514_6,
    0.242_980_179_903_263_98,
    0.231_058_108_280_671_28,
    0.219_101_240_156_869_77,
    0.207_111_376_192_218_56,
    0.195_090_322_016_128_33,
    0.183_039_887_955_141_06,
    0.170_961_888_760_301_36,
    0.158_858_143_333_861_4,
    0.146_730_474_455_361_75,
    0.134_580_708_507_126_22,
    0.122_410_675_199_216_28,
    0.110_222_207_293_883_18,
    0.098_017_140_329_560_77,
    0.085_797_312_344_439_88,
    0.073_564_563_599_667_45,
    0.061_320_736_302_208_65,
    0.049_067_674_327_418_126,
    0.036_807_222_941_358_99,
    0.024_541_228_522_912_264,
    0.012_271_538_285_719_944,
    6.123_233_995_736_766e-17,
    -0.012_271_538_285_719_823,
    -0.024_541_228_522_912_142,
    -0.036_807_222_941_358_866,
    -0.049_067_674_327_418_01,
    -0.061_320_736_302_208_53,
    -0.073_564_563_599_667_33,
    -0.085_797_312_344_439_76,
    -0.098_017_140_329_560_65,
    -0.110_222_207_293_883_06,
    -0.122_410_675_199_216_15,
    -0.134_580_708_507_126_1,
    -0.146_730_474_455_361_64,
    -0.158_858_143_333_861_28,
    -0.170_961_888_760_301_24,
    -0.183_039_887_955_140_92,
    -0.195_090_322_016_128_2,
    -0.207_111_376_192_218_45,
    -0.219_101_240_156_869_66,
    -0.231_058_108_280_671_14,
    -0.242_980_179_903_263_87,
    -0.254_865_659_604_514_5,
    -0.266_712_757_474_898_3,
    -0.278_519_689_385_052_95,
    -0.290_284_677_254_462_16,
    -0.302_005_949_319_228_1,
    -0.313_681_740_398_891_4,
    -0.325_310_292_162_262_87,
    -0.336_889_853_392_219_94,
    -0.348_418_680_249_434_4,
    -0.359_895_036_534_988_17,
    -0.371_317_193_951_837_5,
    -0.382_683_432_365_089_7,
    -0.393_992_040_061_048,
    -0.405_241_314_004_989_75,
    -0.416_429_560_097_637,
    -0.427_555_093_430_281_86,
    -0.438_616_238_538_527_4,
    -0.449_611_329_654_606_7,
    -0.460_538_710_958_240_06,
    -0.471_396_736_825_997_7,
    -0.482_183_772_079_122_7,
    -0.492_898_192_229_784,
    -0.503_538_383_725_717_5,
    -0.514_102_744_193_221_7,
    -0.524_589_682_678_468_7,
    -0.534_997_619_887_097,
    -0.545_324_988_422_046_2,
    -0.555_570_233_019_602,
    -0.565_731_810_783_613_2,
    -0.575_808_191_417_845_3,
    -0.585_797_857_456_438_9,
    -0.595_699_304_492_433_4,
    -0.605_511_041_404_325_4,
    -0.615_231_590_580_626_7,
    -0.624_859_488_142_386_2,
    -0.634_393_284_163_645_4,
    -0.643_831_542_889_791_3,
    -0.653_172_842_953_776_5,
    -0.662_415_777_590_171_9,
    -0.671_558_954_847_018_4,
    -0.680_600_997_795_453,
    -0.689_540_544_737_066_9,
    -0.698_376_249_408_972_8,
    -0.707_106_781_186_547_5,
    -0.715_730_825_283_818_6,
    -0.724_247_082_951_466_8,
    -0.732_654_271_672_412_7,
    -0.740_951_125_354_958_9,
    -0.749_136_394_523_459_1,
    -0.757_208_846_506_484_6,
    -0.765_167_265_622_459,
    -0.773_010_453_362_737,
    -0.780_737_228_572_094_5,
    -0.788_346_427_626_606_2,
    -0.795_836_904_608_883_5,
    -0.803_207_531_480_644_8,
    -0.810_457_198_252_594_7,
    -0.817_584_813_151_583_6,
    -0.824_589_302_785_025_1,
    -0.831_469_612_302_545_3,
    -0.838_224_705_554_838_1,
    -0.844_853_565_249_707_1,
    -0.851_355_193_105_265_2,
    -0.857_728_610_000_272,
    -0.863_972_856_121_586_7,
    -0.870_086_991_108_711_3,
    -0.876_070_094_195_406_5,
    -0.881_921_264_348_354_9,
    -0.887_639_620_402_853_8,
    -0.893_224_301_195_515_2,
    -0.898_674_465_693_953_9,
    -0.903_989_293_123_443_3,
    -0.909_167_983_090_522_4,
    -0.914_209_755_703_530_7,
    -0.919_113_851_690_057_8,
    -0.923_879_532_511_286_7,
    -0.928_506_080_473_215_5,
    -0.932_992_798_834_738_8,
    -0.937_339_011_912_574_8,
    -0.941_544_065_183_020_7,
    -0.945_607_325_380_521_2,
    -0.949_528_180_593_036_7,
    -0.953_306_040_354_193_9,
    -0.956_940_335_732_208_8,
    -0.960_430_519_415_565_8,
    -0.963_776_065_795_439_8,
    -0.966_976_471_044_852_1,
    -0.970_031_253_194_544,
    -0.972_939_952_205_560_1,
    -0.975_702_130_038_528_5,
    -0.978_317_370_719_627_5,
    -0.980_785_280_403_230_4,
    -0.983_105_487_431_216_3,
    -0.985_277_642_388_941_2,
    -0.987_301_418_157_858_4,
    -0.989_176_509_964_781,
    -0.990_902_635_427_78,
    -0.992_479_534_598_71,
    -0.993_906_970_002_356_1,
    -0.995_184_726_672_196_8,
    -0.996_312_612_182_778,
    -0.997_290_456_678_690_2,
    -0.998_118_112_900_149_2,
    -0.998_795_456_205_172_4,
    -0.999_322_384_588_349_5,
    -0.999_698_818_696_204_2,
    -0.999_924_701_839_144_5,
    -1.0
];

pub(crate) const CHEB_WEIGHTS_256: [f64; 257] = [
    0.5, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0,
    0.5
];