public async Task <IActionResult> Gamma(string number) { var parseResult = TryParser.TryDoubleParse(number); var dval = parseResult.Item2; string result = ""; if (parseResult.Item1) { result = await Task.Run(() => { return(MF.SpecialFunctions.Gamma(dval).ToString()); }); return(Ok(result)); } else { return(BadRequest(String.Format("improper number, or integer number than {0}", gammaMax))); } }
public async Task <IActionResult> SchwarzschildRadus(string mass) { var parsResultMass = TryParser.TryDoubleParse(mass); var G = 6.67408E-11; var Msol = 1.989E30; var c = 299792458.0; if (parsResultMass.Item1 && parsResultMass.Item2 > 0.0) { var M = parsResultMass.Item2; var result = (2.0 * G * M * Msol) / (c * c); result /= 1000.0;//km conversion return(Ok(result)); } else { return(BadRequest("improper speed or time, or inproper input parameters")); } }
public async Task <IActionResult> BinomialDistribution(string probability, string number, string knumber) { var parseResult1 = TryParser.TryDoubleParse(probability); var parseResult2 = TryParser.TryLongParse(number, binomialMax); var parseResult3 = TryParser.TryLongParse(knumber, binomialMax); var n = parseResult2.Item2; var k = parseResult3.Item2; var p = parseResult1.Item2; if (parseResult1.Item1 && parseResult2.Item1 && (p < 1.0 && p > 0.0) && n > k) { var result = await Task.Run(() => { return(((double)MF.BinomialCoefficient.Binomial(n, k)) * Math.Pow(p / (1 - p), k) * Math.Pow(1 - p, n)); }); return(Ok(result)); } else { return(BadRequest(String.Format("improper integers or probability, or integer greater than {0}", binomialMax))); } }