Esempio n. 1
0
        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)));
            }
        }