public void CloneTest() { var exp = new Reciprocal(new ComplexNumber(new Complex(2, 2))); var clone = exp.Clone(); Assert.Equal(exp, clone); }
public void ReciprocalToStringTest() { var complex = new Complex(3.1, 2.5); var exp = new Reciprocal(new ComplexNumber(complex)); Assert.Equal("reciprocal(3.1+2.5i)", exp.ToString(commoonFormatter)); }
public void ToStringTest() { var complex = new Complex(3.1, 2.5); var exp = new Reciprocal(new ComplexNumber(complex)); Assert.Equal("reciprocal(3.1+2.5i)", exp.ToString()); }
public void reciprocalTest() { var r = new Reciprocal(); Assert.AreEqual(1, r.reciprocal(7, 1)); Assert.AreEqual(0, r.reciprocal(8, 8)); Assert.AreEqual(0, r.reciprocal(1, 1)); Assert.AreEqual(5, r.reciprocal(2, 1)); Assert.AreEqual(3, r.reciprocal(3, 1)); Assert.AreEqual(3, r.reciprocal(3, 9)); Assert.AreEqual(1, r.reciprocal(6, 1)); Assert.AreEqual(6, r.reciprocal(6, 2)); Assert.AreEqual(6, r.reciprocal(6, 99)); Assert.AreEqual(7, r.reciprocal(7, 6)); Assert.AreEqual(1, r.reciprocal(7, 7)); Assert.AreEqual(8, r.reciprocal(7, 10)); Assert.AreEqual(1, r.reciprocal(7, 13)); Assert.AreEqual(1, r.reciprocal(10, 1)); Assert.AreEqual(0, r.reciprocal(10, 2)); Assert.AreEqual(0, r.reciprocal(15, 1)); Assert.AreEqual(6, r.reciprocal(15, 2)); Assert.AreEqual(6, r.reciprocal(15, 99)); Assert.AreEqual(0, r.reciprocal(112, 2)); Assert.AreEqual(8, r.reciprocal(112, 3)); Assert.AreEqual(9, r.reciprocal(112, 4)); Assert.AreEqual(2, r.reciprocal(112, 5)); Assert.AreEqual(4, r.reciprocal(112, 10)); Assert.AreEqual(2, r.reciprocal(112, 11)); Assert.AreEqual(4, r.reciprocal(112, 16)); Assert.AreEqual(5, r.reciprocal(112, 85)); Assert.AreEqual(2, r.reciprocal(777, 1234)); Assert.AreEqual(3, r.reciprocal(9876, 1919)); Assert.AreEqual(7, r.reciprocal(12345, 987654321)); }
public void ExecuteTest1() { var complex = new Complex(3.1, 2.5); var exp = new Reciprocal(new ComplexNumber(complex)); Assert.Equal(Complex.Reciprocal(complex), exp.Execute()); }
public void TestReciprocalException() { var exp = new Reciprocal(new Number(2)); TestException(exp); }
public void TestReciprocalComplexNumber() { var exp = new Reciprocal(new ComplexNumber(2, 3)); Test(exp, ResultType.ComplexNumber); }
public void TestReciprocalUndefined() { var exp = new Reciprocal(Variable.X); Test(exp, ResultType.Undefined); }
/// <summary> /// Creates an expression object from <see cref="FunctionToken"/>. /// </summary> /// <param name="token">The function token.</param> /// <returns>An expression.</returns> protected virtual IExpression CreateFunction(FunctionToken token) { IExpression exp; switch (token.Function) { case Functions.Add: exp = new Add(); break; case Functions.Sub: exp = new Sub(); break; case Functions.Mul: exp = new Mul(); break; case Functions.Div: exp = new Div(); break; case Functions.Pow: exp = new Pow(); break; case Functions.Absolute: exp = new Abs(); break; case Functions.Sine: exp = new Sin(); break; case Functions.Cosine: exp = new Cos(); break; case Functions.Tangent: exp = new Tan(); break; case Functions.Cotangent: exp = new Cot(); break; case Functions.Secant: exp = new Sec(); break; case Functions.Cosecant: exp = new Csc(); break; case Functions.Arcsine: exp = new Arcsin(); break; case Functions.Arccosine: exp = new Arccos(); break; case Functions.Arctangent: exp = new Arctan(); break; case Functions.Arccotangent: exp = new Arccot(); break; case Functions.Arcsecant: exp = new Arcsec(); break; case Functions.Arccosecant: exp = new Arccsc(); break; case Functions.Sqrt: exp = new Sqrt(); break; case Functions.Root: exp = new Root(); break; case Functions.Ln: exp = new Ln(); break; case Functions.Lg: exp = new Lg(); break; case Functions.Lb: exp = new Lb(); break; case Functions.Log: exp = new Log(); break; case Functions.Sineh: exp = new Sinh(); break; case Functions.Cosineh: exp = new Cosh(); break; case Functions.Tangenth: exp = new Tanh(); break; case Functions.Cotangenth: exp = new Coth(); break; case Functions.Secanth: exp = new Sech(); break; case Functions.Cosecanth: exp = new Csch(); break; case Functions.Arsineh: exp = new Arsinh(); break; case Functions.Arcosineh: exp = new Arcosh(); break; case Functions.Artangenth: exp = new Artanh(); break; case Functions.Arcotangenth: exp = new Arcoth(); break; case Functions.Arsecanth: exp = new Arsech(); break; case Functions.Arcosecanth: exp = new Arcsch(); break; case Functions.Exp: exp = new Exp(); break; case Functions.GCD: exp = new GCD(); break; case Functions.LCM: exp = new LCM(); break; case Functions.Factorial: exp = new Fact(); break; case Functions.Sum: exp = new Sum(); break; case Functions.Product: exp = new Product(); break; case Functions.Round: exp = new Round(); break; case Functions.Floor: exp = new Floor(); break; case Functions.Ceil: exp = new Ceil(); break; case Functions.Derivative: exp = new Derivative(); break; case Functions.Simplify: exp = new Simplify(); break; case Functions.Del: exp = new Del(); break; case Functions.Define: exp = new Define(); break; case Functions.Vector: exp = new Vector(); break; case Functions.Matrix: exp = new Matrix(); break; case Functions.Transpose: exp = new Transpose(); break; case Functions.Determinant: exp = new Determinant(); break; case Functions.Inverse: exp = new Inverse(); break; case Functions.If: exp = new If(); break; case Functions.For: exp = new For(); break; case Functions.While: exp = new While(); break; case Functions.Undefine: exp = new Undefine(); break; case Functions.Im: exp = new Im(); break; case Functions.Re: exp = new Re(); break; case Functions.Phase: exp = new Phase(); break; case Functions.Conjugate: exp = new Conjugate(); break; case Functions.Reciprocal: exp = new Reciprocal(); break; case Functions.Min: exp = new Min(); break; case Functions.Max: exp = new Max(); break; case Functions.Avg: exp = new Avg(); break; case Functions.Count: exp = new Count(); break; case Functions.Var: exp = new Var(); break; case Functions.Varp: exp = new Varp(); break; case Functions.Stdev: exp = new Stdev(); break; case Functions.Stdevp: exp = new Stdevp(); break; default: exp = null; break; } if (exp is DifferentParametersExpression diff) { diff.ParametersCount = token.CountOfParams; } return(exp); }
public H(Reciprocal r, T t) => (x, w) = (t, r);
private static void reciprocal_sample_test() //****************************************************************************80 // // Purpose: // // RECIPROCAL_SAMPLE_TEST tests RECIPROCAL_SAMPLE. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 27 February 2007 // // Author: // // John Burkardt // { const int SAMPLE_NUM = 1000; int i; int seed = 123456789; double[] x = new double [SAMPLE_NUM]; Console.WriteLine(""); Console.WriteLine("RECIPROCAL_SAMPLE_TEST"); Console.WriteLine(" RECIPROCAL_MEAN computes the Reciprocal mean;"); Console.WriteLine(" RECIPROCAL_SAMPLE samples the Reciprocal distribution;"); Console.WriteLine(" RECIPROCAL_VARIANCE computes the Reciprocal variance;"); const double a = 1.0; const double b = 3.0; Console.WriteLine(""); Console.WriteLine(" PDF parameter A = " + a + ""); Console.WriteLine(" PDF parameter B = " + b + ""); if (!Reciprocal.reciprocal_check(a, b)) { Console.WriteLine(""); Console.WriteLine("RECIPROCAL_SAMPLE_TEST - Fatal error!"); Console.WriteLine(" The parameters are not legal."); return; } double mean = Reciprocal.reciprocal_mean(a, b); double variance = Reciprocal.reciprocal_variance(a, b); Console.WriteLine(""); Console.WriteLine(" PDF mean = " + mean + ""); Console.WriteLine(" PDF variance = " + variance + ""); for (i = 0; i < SAMPLE_NUM; i++) { x[i] = Reciprocal.reciprocal_sample(a, b, ref seed); } mean = typeMethods.r8vec_mean(SAMPLE_NUM, x); variance = typeMethods.r8vec_variance(SAMPLE_NUM, x); double xmax = typeMethods.r8vec_max(SAMPLE_NUM, x); double xmin = typeMethods.r8vec_min(SAMPLE_NUM, x); Console.WriteLine(""); Console.WriteLine(" Sample size = " + SAMPLE_NUM + ""); Console.WriteLine(" Sample mean = " + mean + ""); Console.WriteLine(" Sample variance = " + variance + ""); Console.WriteLine(" Sample maximum = " + xmax + ""); Console.WriteLine(" Sample minimum = " + xmin + ""); }
public void ExecuteExeptionTest() { var exp = new Reciprocal(new Number(2)); Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute()); }
/// <summary> /// Creates an expression object from <see cref="FunctionToken"/>. /// </summary> /// <param name="token">The function token.</param> /// <returns>An expression.</returns> protected virtual IExpression CreateFunction(FunctionToken token) { IExpression exp; switch (token.Function) { case Functions.Add: exp = new Add(); break; case Functions.Sub: exp = new Sub(); break; case Functions.Mul: exp = new Mul(); break; case Functions.Div: exp = new Div(); break; case Functions.Pow: exp = new Pow(); break; case Functions.Absolute: exp = new Abs(); break; case Functions.Sine: exp = new Sin(); break; case Functions.Cosine: exp = new Cos(); break; case Functions.Tangent: exp = new Tan(); break; case Functions.Cotangent: exp = new Cot(); break; case Functions.Secant: exp = new Sec(); break; case Functions.Cosecant: exp = new Csc(); break; case Functions.Arcsine: exp = new Arcsin(); break; case Functions.Arccosine: exp = new Arccos(); break; case Functions.Arctangent: exp = new Arctan(); break; case Functions.Arccotangent: exp = new Arccot(); break; case Functions.Arcsecant: exp = new Arcsec(); break; case Functions.Arccosecant: exp = new Arccsc(); break; case Functions.Sqrt: exp = new Sqrt(); break; case Functions.Root: exp = new Root(); break; case Functions.Ln: exp = new Ln(); break; case Functions.Lg: exp = new Lg(); break; case Functions.Lb: exp = new Lb(); break; case Functions.Log: exp = new Log(); break; case Functions.Sineh: exp = new Sinh(); break; case Functions.Cosineh: exp = new Cosh(); break; case Functions.Tangenth: exp = new Tanh(); break; case Functions.Cotangenth: exp = new Coth(); break; case Functions.Secanth: exp = new Sech(); break; case Functions.Cosecanth: exp = new Csch(); break; case Functions.Arsineh: exp = new Arsinh(); break; case Functions.Arcosineh: exp = new Arcosh(); break; case Functions.Artangenth: exp = new Artanh(); break; case Functions.Arcotangenth: exp = new Arcoth(); break; case Functions.Arsecanth: exp = new Arsech(); break; case Functions.Arcosecanth: exp = new Arcsch(); break; case Functions.Exp: exp = new Exp(); break; case Functions.GCD: exp = new GCD(); break; case Functions.LCM: exp = new LCM(); break; case Functions.Factorial: exp = new Fact(); break; case Functions.Sum: exp = new Sum(); break; case Functions.Product: exp = new Product(); break; case Functions.Round: exp = new Round(); break; case Functions.Floor: exp = new Floor(); break; case Functions.Ceil: exp = new Ceil(); break; case Functions.Derivative: exp = new Derivative(); break; case Functions.Simplify: exp = new Simplify(); break; case Functions.Del: exp = new Del(); break; case Functions.Define: exp = new Define(); break; case Functions.Vector: exp = new Vector(); break; case Functions.Matrix: exp = new Matrix(); break; case Functions.Transpose: exp = new Transpose(); break; case Functions.Determinant: exp = new Determinant(); break; case Functions.Inverse: exp = new Inverse(); break; case Functions.If: exp = new If(); break; case Functions.For: exp = new For(); break; case Functions.While: exp = new While(); break; case Functions.Undefine: exp = new Undefine(); break; case Functions.Im: exp = new Im(); break; case Functions.Re: exp = new Re(); break; case Functions.Phase: exp = new Phase(); break; case Functions.Conjugate: exp = new Conjugate(); break; case Functions.Reciprocal: exp = new Reciprocal(); break; case Functions.Min: exp = new Min(); break; case Functions.Max: exp = new Max(); break; case Functions.Avg: exp = new Avg(); break; case Functions.Count: exp = new Count(); break; case Functions.Var: exp = new Var(); break; case Functions.Varp: exp = new Varp(); break; case Functions.Stdev: exp = new Stdev(); break; case Functions.Stdevp: exp = new Stdevp(); break; default: exp = null; break; } var diff = exp as DifferentParametersExpression; if (diff != null) diff.ParametersCount = token.CountOfParams; return exp; }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns>The result of analysis.</returns> public string Analyze(Reciprocal exp) { return(ToString(exp, "reciprocal({0})")); }
private static void reciprocal_cdf_test() //****************************************************************************80 // // Purpose: // // RECIPROCAL_CDF_TEST tests RECIPROCAL_CDF. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 29 March 2016 // // Author: // // John Burkardt // { int i; int seed = 123456789; Console.WriteLine(""); Console.WriteLine("RECIPROCAL_CDF_TEST"); Console.WriteLine(" RECIPROCAL_CDF evaluates the Reciprocal CDF;"); Console.WriteLine(" RECIPROCAL_CDF_INV inverts the Reciprocal CDF."); Console.WriteLine(" RECIPROCAL_PDF evaluates the Reciprocal PDF;"); const double a = 1.0; const double b = 3.0; Console.WriteLine(""); Console.WriteLine(" PDF parameter A = " + a + ""); Console.WriteLine(" PDF parameter B = " + b + ""); if (!Reciprocal.reciprocal_check(a, b)) { Console.WriteLine(""); Console.WriteLine("RECIPROCAL_CDF_TEST - Fatal error!"); Console.WriteLine(" The parameters are not legal."); return; } Console.WriteLine(""); Console.WriteLine(" X PDF CDF CDF_INV"); Console.WriteLine(""); for (i = 1; i <= 10; i++) { double x = Reciprocal.reciprocal_sample(a, b, ref seed); double pdf = Reciprocal.reciprocal_pdf(x, a, b); double cdf = Reciprocal.reciprocal_cdf(x, a, b); double x2 = Reciprocal.reciprocal_cdf_inv(cdf, a, b); Console.WriteLine(" " + x.ToString(CultureInfo.InvariantCulture).PadLeft(12) + " " + pdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + " " + cdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + " " + x2.ToString(CultureInfo.InvariantCulture).PadLeft(12) + ""); } }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns> /// The result of analysis. /// </returns> /// <exception cref="System.NotSupportedException">Always.</exception> public virtual TResult Analyze(Reciprocal exp) { throw new NotSupportedException(); }
public void ReciprocalTest() { var tokens = new List<IToken> { new FunctionToken(Functions.Reciprocal, 1), new SymbolToken(Symbols.OpenBracket), new ComplexNumberToken(new Complex(3, -2)), new SymbolToken(Symbols.CloseBracket) }; var exp = parser.Parse(tokens); var expected = new Reciprocal(new ComplexNumber(new Complex(3, -2))); Assert.Equal(expected, exp); }
public void Reciprocal_Works(double value, double expected) { var reciprocal = new Reciprocal(); var result = reciprocal.Execute(value); Assert.AreEqual(result, expected); }