public void ArctanTan() { var exp = new Arctan(new Tan(Variable.X)); var expected = Variable.X; SimpleTest(exp, expected); }
public void CalculationTest(double value, double answer) { var calculator = new Arctan(); double actual = calculator.calculate(value); Assert.AreEqual(answer, actual, 0.001); }
public void CalculateTest(double firstValue, double expected) { var calculator = new Arctan(); var actualResult = calculator.Calculate(firstValue); Assert.AreEqual(expected, actualResult, 0.01); }
public void CalculateTest(double value, double expected) { var calculator = new Arctan(); var actualResult = calculator.SingleCalculate(value); Assert.AreEqual(expected, actualResult, 0.00001); }
public void ArctanTan() { var exp = new Arctan(new Tan(new Variable("x"))); var expected = new Variable("x"); SimpleTest(exp, expected); }
public void CalculateTest() { IOneArgumentCalculator calculator = new Arctan(); double result = calculator.Calculate(1); Assert.AreEqual(0.79, result, 0.01); }
public void CalculateTest(double firstValue, double expected) { var calculator = new Arctan(); var actualResult = calculator.OneArgumentOperation(firstValue); Assert.AreEqual(expected, actualResult, 0.0001); }
public void CalculateTest(double argument, double result, double accracy) { var testingFunction = new Arctan(); var testResult = testingFunction.Calculate(argument); Assert.AreEqual(result, testResult, accracy); }
public void CloneTest() { var exp = new Arctan(new Number(1)); var clone = exp.Clone(); Assert.Equal(exp, clone); }
public void ExecuteComplexNumberTest() { var complex = new Complex(3, 2); var exp = new Arctan(new ComplexNumber(complex)); var result = (Complex)exp.Execute(); Assert.Equal(Complex.Atan(complex), result); Assert.Equal(1.3389725222944935, result.Real, 15); Assert.Equal(0.14694666622552977, result.Imaginary, 15); }
public void ArctanPrimeTest() { var a = new Matrix(2, 2); a.InRandomize(); var b = a.Duplicate(); a = new Arctan().Backward(a); b.InMap((x) => 1 / (1 + Math.Pow(x, 2))); Assert.IsTrue(Math.Abs(a.FrobeniusNorm() - b.FrobeniusNorm()) < 0.1, new Arctan().Type().ToString() + " Derivative."); }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns> /// The result of analysis. /// </returns> public override IExpression Analyze(Arctan exp) { if (!Helpers.HasVariable(exp, Variable)) { return(new Number(0)); } var involution = new Pow(exp.Argument.Clone(), new Number(2)); var add = new Add(new Number(1), involution); var div = new Div(exp.Argument.Clone().Analyze(this), add); return(div); }
public void ArctanTest() { var a = new Matrix(2, 2); a.InRandomize(); var b = a.Duplicate(); a = new Arctan().Forward(a); b.InMap(Math.Atan); Assert.IsTrue(Math.Abs(a.FrobeniusNorm() - b.FrobeniusNorm()) < 0.1, new Arctan().Type().ToString() + " Activation."); }
public void ExecuteGradianTest() { var exp = new Arctan(new Number(1)); Assert.Equal(Math.Atan(1) / Math.PI * 200, exp.Execute(AngleMeasurement.Gradian)); }
public void ExecuteDegreeTest() { var exp = new Arctan(new Number(1)); Assert.Equal(Math.Atan(1) / Math.PI * 180, exp.Execute(AngleMeasurement.Degree)); }
public Layer(int nCount, int index, ActivationSettings activationSettings) { NCount = nCount; Index = index; ActivationType = activationSettings.Type(); // Activation Setup switch (activationSettings.Type()) { case EActivationType.Invalid: Activation = null; throw new ArgumentException("Activation Type Invalid."); case EActivationType.Arctan: Activation = new Arctan(); break; case EActivationType.BinaryStep: Activation = new BinaryStep(); break; case EActivationType.BipolarSigmoid: Activation = new BipolarSigmoid(); break; case EActivationType.ELU: Activation = new ELU((ELUSettings)activationSettings); break; case EActivationType.HardSigmoid: Activation = new HardSigmoid(); break; case EActivationType.HardTanh: Activation = new HardTanh(); break; case EActivationType.Identity: Activation = new Identity(); break; case EActivationType.Logit: Activation = new Logit(); break; case EActivationType.LReLU: Activation = new LReLU((LReLUSettings)activationSettings); break; case EActivationType.Mish: Activation = new Mish(); break; case EActivationType.ReLU: Activation = new ReLU(); break; case EActivationType.SeLU: Activation = new SeLU(); break; case EActivationType.Sigmoid: Activation = new Sigmoid(); break; case EActivationType.Softmax: Activation = new Softmax(); break; case EActivationType.Softplus: Activation = new Softplus(); break; case EActivationType.Softsign: Activation = new Softsign(); break; case EActivationType.Tanh: Activation = new Tanh(); break; default: throw new ArgumentException("Activation Type Invalid."); } }
public void TestArctanException() { var exp = new Arctan(new Bool(false)); TestException(exp); }
/// <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 void ExecuteTestException() { var exp = new Arctan(new Bool(false)); Assert.Throws <ResultIsNotSupportedException>(() => exp.Execute()); }
/// <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(Arctan exp) { throw new NotSupportedException(); }
public void TestArctanNumber() { var exp = new Arctan(new Number(2)); Test(exp, ResultType.Number); }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns>The result of analysis.</returns> public string Analyze(Arctan exp) { return(ToString(exp, "arctan({0})")); }
public void TestArctanComplexNumber() { var exp = new Arctan(new ComplexNumber(2, 2)); Test(exp, ResultType.ComplexNumber); }
public void ArctanToStringTest() { var exp = new Arctan(new Number(5)); Assert.Equal("arctan(5)", exp.ToString(commoonFormatter)); }
public void TestArctanUndefined() { var exp = new Arctan(Variable.X); Test(exp, ResultType.Undefined); }