예제 #1
0
        public void CanComputeCosecant(
            [Values(0.0, 8388608, 1.19209289550780998537e-7, -8388608, -1.19209289550780998537e-7)] double value,
            [Values(double.PositiveInfinity, 2.3134856195559191, 8388608.0000000376, -2.3134856195559191, -8388608.0000000376)] double expected)
        {
            var actual = Trig.Cosecant(value);

            AssertHelpers.AlmostEqual(expected, actual, 13);
        }
        public void TestNumeratorDenominatorOfTernaryProduct()
        {
            Expression <Func <double, double> > lambda = x => 2 * x * Trig.Cosecant(x);

            Expression nominator = Elementary.Numerator(lambda.Body);

            Assert.AreEqual(ExpressionType.Multiply, nominator.NodeType);
            Assert.IsInstanceOfType(typeof(BinaryExpression), nominator);
            Assert.AreEqual("((2 * x) * Cosecant(x))", nominator.ToString());

            Expression denominator = Elementary.Denominator(lambda.Body);

            Assert.AreEqual(ExpressionType.Constant, denominator.NodeType);
            Assert.IsInstanceOfType(typeof(ConstantExpression), denominator);
            Assert.AreEqual("1", denominator.ToString());
        }
        public void CanComputeCosecant(double value, double expected)
        {
            var actual = Trig.Cosecant(value);

            AssertHelpers.AlmostEqual(expected, actual, 13);
        }
예제 #4
0
 /// <summary>Trigonometric Cosecant (Cosekans) of an angle in radians</summary>
 public RealValue Cosecant()
 {
     return(new RealValue(Trig.Cosecant(_dataValue)));
 }