Example #1
0
        /// <summary>
        /// Compares two double values.
        /// </summary>
        /// <param name="x">Value 1</param>
        /// <param name="y">Value 2</param>
        /// <returns>Result</returns>
        public int Compare(IElement x, IElement y)
        {
            DoubleNumber d1 = (DoubleNumber)x;
            DoubleNumber d2 = (DoubleNumber)y;

            return(d1.Value.CompareTo(d2.Value));
        }
Example #2
0
        /// <summary>
        /// Tries to multiply an element to the current element.
        /// </summary>
        /// <param name="Element">Element to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override ICommutativeRingElement Multiply(ICommutativeRingElement Element)
        {
            DoubleNumber E = Element as DoubleNumber;

            if (E == null)
            {
                return(null);
            }
            else
            {
                return(new DoubleNumber(this.value * E.value));
            }
        }
Example #3
0
        /// <summary>
        /// <see cref="Object.Equals(object)"/>
        /// </summary>
        public override bool Equals(object obj)
        {
            DoubleNumber E = obj as DoubleNumber;

            if (E == null)
            {
                return(false);
            }
            else
            {
                return(this.value == E.value);
            }
        }
Example #4
0
        /// <summary>
        /// Tries to add an element to the current element.
        /// </summary>
        /// <param name="Element">Element to add.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IAbelianGroupElement Add(IAbelianGroupElement Element)
        {
            DoubleNumber E = Element as DoubleNumber;

            if (E == null)
            {
                return(null);
            }
            else
            {
                return(new DoubleNumber(this.value + E.value));
            }
        }
        /// <summary>
        /// Tries to multiply an element to the current element.
        /// </summary>
        /// <param name="Element">Element to multiply.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override ICommutativeRingElement Multiply(ICommutativeRingElement Element)
        {
            ComplexNumber E = Element as ComplexNumber;

            if (E is null)
            {
                DoubleNumber D = Element as DoubleNumber;
                if (D is null)
                {
                    return(null);
                }
                else
                {
                    return(new ComplexNumber(this.value * D.Value));
                }
            }
            else
            {
                return(new ComplexNumber(this.value * E.value));
            }
        }
        /// <summary>
        /// <see cref="Object.Equals(object)"/>
        /// </summary>
        public override bool Equals(object obj)
        {
            ComplexNumber E = obj as ComplexNumber;

            if (E is null)
            {
                DoubleNumber D = obj as DoubleNumber;
                if (D is null)
                {
                    return(false);
                }
                else
                {
                    return(this.value == D.Value);
                }
            }
            else
            {
                return(this.value == E.value);
            }
        }
        /// <summary>
        /// Tries to add an element to the current element.
        /// </summary>
        /// <param name="Element">Element to add.</param>
        /// <returns>Result, if understood, null otherwise.</returns>
        public override IAbelianGroupElement Add(IAbelianGroupElement Element)
        {
            ComplexNumber E = Element as ComplexNumber;

            if (E is null)
            {
                DoubleNumber D = Element as DoubleNumber;
                if (D is null)
                {
                    return(null);
                }
                else
                {
                    return(new ComplexNumber(this.value + D.Value));
                }
            }
            else
            {
                return(new ComplexNumber(this.value + E.value));
            }
        }