OSDN Git Service

複素数型(Complex)の追加
authorkimikage <kimikage_ceo@hotmail.com>
Fri, 12 Nov 2010 10:20:30 +0000 (19:20 +0900)
committerkimikage <kimikage_ceo@hotmail.com>
Fri, 12 Nov 2010 10:20:30 +0000 (19:20 +0900)
Karinto/Complex.cs [new file with mode: 0755]

diff --git a/Karinto/Complex.cs b/Karinto/Complex.cs
new file mode 100755 (executable)
index 0000000..f21d957
--- /dev/null
@@ -0,0 +1,64 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Runtime.InteropServices;\r
+\r
+namespace Karinto\r
+{\r
+    [StructLayout(LayoutKind.Explicit)]\r
+    public struct Complex : IEquatable<Complex>, IFormattable\r
+    {\r
+        [FieldOffset(0)]\r
+        private double real;\r
+        [FieldOffset(8)] \r
+        private double imaginary;\r
+\r
+        public Complex(double real, double imaginary)\r
+        {\r
+            this.real = real;\r
+            this.imaginary = imaginary;\r
+        }\r
+\r
+        public double Real\r
+        {\r
+            get{\r
+                return real;\r
+            }\r
+        }\r
+\r
+        public double Imaginary\r
+        {\r
+            get\r
+            {\r
+                return imaginary;\r
+            }\r
+        }\r
+\r
+        public override string ToString()\r
+        {\r
+            return "(" + real.ToString() + ", " + imaginary.ToString() + ")";\r
+        }\r
+\r
+        public string ToString(IFormatProvider provider)\r
+        {\r
+            return ToString();\r
+        }\r
+\r
+        public string ToString(string format)\r
+        {\r
+            return ToString();\r
+        }\r
+\r
+        public string ToString(string format, IFormatProvider provider)\r
+        {\r
+            return ToString();\r
+        }\r
+\r
+        bool IEquatable<Complex>.Equals(Complex value)\r
+        {\r
+            return real.Equals(value.real) && imaginary.Equals(value.imaginary);\r
+        }\r
+\r
+\r
+    }\r
+}\r