/// <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)); }
/// <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)); } }
/// <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); } }
/// <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)); } }