/IronPython_1_1/Src/IronPython/Runtime/Operations/FloatOps.Generated.cs
# · C# · 295 lines · 233 code · 44 blank · 18 comment · 104 complexity · 954c8edffc64883b9dc31cc077b5bd0a MD5 · raw file
- /* ****************************************************************************
- *
- * Copyright (c) Microsoft Corporation.
- *
- * This source code is subject to terms and conditions of the Microsoft Public
- * License. A copy of the license can be found in the License.html file at the
- * root of this distribution. If you cannot locate the Microsoft Public
- * License, please send an email to dlr@microsoft.com. By using this source
- * code in any fashion, you are agreeing to be bound by the terms of the
- * Microsoft Public License.
- *
- * You must not remove this notice, or any other, from this software.
- *
- * ***************************************************************************/
-
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- using IronMath;
- using IronPython.Runtime;
-
- namespace IronPython.Runtime.Operations {
- public partial class ExtensibleFloat {
- #region Generated Extensible FloatOps
-
- // *** BEGIN GENERATED CODE ***
-
- [PythonName("__add__")]
- public virtual object Add(object other) {
- return FloatOps.Add(value, other);
- }
-
- [PythonName("__radd__")]
- public virtual object ReverseAdd(object other) {
- return FloatOps.ReverseAdd(value, other);
- }
- [PythonName("__sub__")]
- public virtual object Subtract(object other) {
- return FloatOps.Subtract(value, other);
- }
-
- [PythonName("__rsub__")]
- public virtual object ReverseSubtract(object other) {
- return FloatOps.ReverseSubtract(value, other);
- }
- [PythonName("__pow__")]
- public virtual object Power(object other) {
- return FloatOps.Power(value, other);
- }
-
- [PythonName("__rpow__")]
- public virtual object ReversePower(object other) {
- return FloatOps.ReversePower(value, other);
- }
- [PythonName("__mul__")]
- public virtual object Multiply(object other) {
- return FloatOps.Multiply(value, other);
- }
-
- [PythonName("__rmul__")]
- public virtual object ReverseMultiply(object other) {
- return FloatOps.ReverseMultiply(value, other);
- }
- [PythonName("__div__")]
- public virtual object Divide(object other) {
- return FloatOps.Divide(value, other);
- }
-
- [PythonName("__rdiv__")]
- public virtual object ReverseDivide(object other) {
- return FloatOps.ReverseDivide(value, other);
- }
- [PythonName("__floordiv__")]
- public virtual object FloorDivide(object other) {
- return FloatOps.FloorDivide(value, other);
- }
-
- [PythonName("__rfloordiv__")]
- public virtual object ReverseFloorDivide(object other) {
- return FloatOps.ReverseFloorDivide(value, other);
- }
- [PythonName("__truediv__")]
- public virtual object TrueDivide(object other) {
- return FloatOps.TrueDivide(value, other);
- }
-
- [PythonName("__rtruediv__")]
- public virtual object ReverseTrueDivide(object other) {
- return FloatOps.ReverseTrueDivide(value, other);
- }
- [PythonName("__mod__")]
- public virtual object Mod(object other) {
- return FloatOps.Mod(value, other);
- }
-
- [PythonName("__rmod__")]
- public virtual object ReverseMod(object other) {
- return FloatOps.ReverseMod(value, other);
- }
-
- // *** END GENERATED CODE ***
-
- #endregion
- }
-
- public static partial class FloatOps {
- #region Generated FloatOps
-
- // *** BEGIN GENERATED CODE ***
-
-
- [PythonName("__add__")]
- public static object Add(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return x + ((double)other);
- if (other is int) return x + ((int)other);
- if (other is Complex64) return ComplexOps.Add(Complex64.MakeReal(x), (Complex64)other);
- if ((object)(bi = other as BigInteger) != null) return x + bi;
- if (other is float) return x + ((float)other);
- if ((object)(num = other as INumber) != null) return num.ReverseAdd(x);
- if (other is string) return Ops.NotImplemented;
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return x + y;
- }
- if (other is long) return x + ((long)other);
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Add(Complex64.MakeReal(x), xc.value);
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__radd__")]
- public static object ReverseAdd(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return ((double)other) + x;
- if (other is int) return ((int)other) + x;
- if (other is Complex64) return ComplexOps.Add((Complex64)other, Complex64.MakeReal(x));
- if ((object)(bi = other as BigInteger) != null) return bi + x;
- if (other is float) return ((float)other) + x;
- if ((object)(num = other as INumber) != null) return num.Add(x);
- if (other is string) return Ops.NotImplemented;
- if (other is long) return ((long)other) + x;
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Add(xc.value, Complex64.MakeReal(x));
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return y + x;
- }
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__sub__")]
- public static object Subtract(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return x - ((double)other);
- if (other is int) return x - ((int)other);
- if (other is Complex64) return ComplexOps.Subtract(Complex64.MakeReal(x), (Complex64)other);
- if ((object)(bi = other as BigInteger) != null) return x - bi;
- if (other is float) return x - ((float)other);
- if ((object)(num = other as INumber) != null) return num.ReverseSubtract(x);
- if (other is string) return Ops.NotImplemented;
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return x - y;
- }
- if (other is long) return x - ((long)other);
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Subtract(Complex64.MakeReal(x), xc.value);
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__rsub__")]
- public static object ReverseSubtract(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return ((double)other) - x;
- if (other is int) return ((int)other) - x;
- if (other is Complex64) return ComplexOps.Subtract((Complex64)other, Complex64.MakeReal(x));
- if ((object)(bi = other as BigInteger) != null) return bi - x;
- if (other is float) return ((float)other) - x;
- if ((object)(num = other as INumber) != null) return num.Subtract(x);
- if (other is string) return Ops.NotImplemented;
- if (other is long) return ((long)other) - x;
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Subtract(xc.value, Complex64.MakeReal(x));
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return y - x;
- }
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__mul__")]
- public static object Multiply(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return x * ((double)other);
- if (other is int) return x * ((int)other);
- if (other is Complex64) return ComplexOps.Multiply(Complex64.MakeReal(x), (Complex64)other);
- if ((object)(bi = other as BigInteger) != null) return x * bi;
- if (other is float) return x * ((float)other);
- if ((object)(num = other as INumber) != null) return num.ReverseMultiply(x);
- if (other is string) return Ops.NotImplemented;
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return x * y;
- }
- if (other is long) return x * ((long)other);
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Multiply(Complex64.MakeReal(x), xc.value);
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__rmul__")]
- public static object ReverseMultiply(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return ((double)other) * x;
- if (other is int) return ((int)other) * x;
- if (other is Complex64) return ComplexOps.Multiply((Complex64)other, Complex64.MakeReal(x));
- if ((object)(bi = other as BigInteger) != null) return bi * x;
- if (other is float) return ((float)other) * x;
- if ((object)(num = other as INumber) != null) return num.Multiply(x);
- if (other is string) return Ops.NotImplemented;
- if (other is long) return ((long)other) * x;
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.Multiply(xc.value, Complex64.MakeReal(x));
- if (other is IConvertible) {
- double y = ((IConvertible)other).ToDouble(null);
- return y * x;
- }
- return Ops.NotImplemented;
- }
-
-
- [PythonName("__truediv__")]
- public static object TrueDivide(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return TrueDivide(x, ((double)other));
- if (other is int) return TrueDivide(x, ((int)other));
- if (other is Complex64) return ComplexOps.TrueDivide(Complex64.MakeReal(x), (Complex64)other);
- if ((object)(bi = other as BigInteger) != null) return TrueDivide(x, bi);
- if (other is bool) return TrueDivide(x, (bool)other ? 1.0 : 0.0);
- if (other is float) return TrueDivide(x, ((float)other));
- if ((object)(num = other as INumber) != null) return num.ReverseTrueDivide(x);
- if (other is long) return TrueDivide(x, ((long)other));
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.TrueDivide(Complex64.MakeReal(x), xc.value);
- if (other is byte) return TrueDivide(x, (int)((byte)other));
- return Ops.NotImplemented;
- }
-
- [PythonName("__rtruediv__")]
- public static object ReverseTrueDivide(double x, object other) {
- BigInteger bi;
- ExtensibleComplex xc;
- INumber num;
-
- if (other is double) return ReverseTrueDivide(x, ((double)other));
- if (other is int) return ReverseTrueDivide(x, ((int)other));
- if (other is Complex64) return ComplexOps.ReverseTrueDivide(Complex64.MakeReal(x), (Complex64)other);
- if ((object)(bi = other as BigInteger) != null) return ReverseTrueDivide(x, bi);
- if (other is bool) return ReverseTrueDivide(x, (bool)other ? 1.0 : 0.0);
- if (other is float) return ReverseTrueDivide(x, ((float)other));
- if ((object)(num = other as INumber) != null) return num.ReverseTrueDivide(x);
- if (other is long) return ReverseTrueDivide(x, ((long)other));
- if ((object)(xc = other as ExtensibleComplex) != null) return ComplexOps.ReverseTrueDivide(Complex64.MakeReal(x), xc.value);
- if (other is byte) return ReverseTrueDivide(x, (int)((byte)other));
- return Ops.NotImplemented;
- }
-
-
- // *** END GENERATED CODE ***
-
- #endregion
-
- }
- }