Ejemplo n.º 1
0
        public void CloneTest()
        {
            var exp   = new Reciprocal(new ComplexNumber(new Complex(2, 2)));
            var clone = exp.Clone();

            Assert.Equal(exp, clone);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        public void TestReciprocalException()
        {
            var exp = new Reciprocal(new Number(2));

            TestException(exp);
        }
Ejemplo n.º 8
0
        public void TestReciprocalComplexNumber()
        {
            var exp = new Reciprocal(new ComplexNumber(2, 3));

            Test(exp, ResultType.ComplexNumber);
        }
Ejemplo n.º 9
0
        public void TestReciprocalUndefined()
        {
            var exp = new Reciprocal(Variable.X);

            Test(exp, ResultType.Undefined);
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
 public H(Reciprocal r, T t) => (x, w) = (t, r);
Ejemplo n.º 12
0
    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 + "");
    }
Ejemplo n.º 13
0
        public void ExecuteExeptionTest()
        {
            var exp = new Reciprocal(new Number(2));

            Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute());
        }
Ejemplo n.º 14
0
        /// <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;
        }
Ejemplo n.º 15
0
 /// <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})"));
 }
Ejemplo n.º 16
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) + "");
        }
    }
Ejemplo n.º 17
0
 /// <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();
 }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
-1
        public void Reciprocal_Works(double value, double expected)
        {
            var reciprocal = new Reciprocal();

            var result = reciprocal.Execute(value);

            Assert.AreEqual(result, expected);
        }