プログラミング言語 C の新機能 Part XLIV: COMPLEX#2: 複素数に関する四則演算
(2000/02/14 [月])
複素数に関する四則演算について以下に示します。ただし、実数型とあるのは、float, double, long double 型のことを指しています。また、灰色の部分の計算を行おうとすると、例外が発生するかも知れません。ただし、complex.h を include して #pragma STDC CX_LIMITED_RANGE を on にすると灰色の部分の例外が発生しなくなります。デフォルトは off なので例外が発生するようになっています。
...と仕様で言っているのではないかと...。
...と仕様で言っているのではないかと...。
± | 実数型 c | _Imaginary型 di | _Complex型 c+di |
---|---|---|---|
実数型 a | 実数型 a±c | _Complex型 a±di | _Complex型 (a±c)±di |
_Imaginary型 bi | _Complex型 ±c+bi | _Imaginary型 (b±d)i | _Complex型 ±c+(b±d)i |
_Complex型 a+bi | _Complex型 (a±c)+bi | _Complex型 a+(b±d)i | _Complex型 (a±c)+(b±d)i |
× | 実数型 c | _Imaginary型 di | _Complex型 c+di |
---|---|---|---|
実数型 a | 実数型 a×c | _Imaginary型 (a×d)i | _Complex型 (a×c)+(a×d)i |
_Imaginary型 bi | _Imaginary型 (b×c)i | 実数型 -(b×d) | _Complex型 -(b×d)+(b×c)i |
_Complex型 a+bi | _Complex型 (a×c)+(b×c)i | _Complex型 -(b×d)+(a×d)i | _Complex型 (a×c)-(b×d)+(a×d+b×c)i |
÷ | 実数型 c | _Imaginary型 di | _Complex型 c+di |
---|---|---|---|
実数型 a | 実数型 a ── c | _Imaginary型 a - ── i d | _Complex型 (a×c)-(a×d)i ─────── c2+d2 |
_Imaginary型 bi | _Imaginary型 b ── i c | 実数型 b ── d | _Complex型 (b×d)-(b×c)i ─────── c2+d2 |
_Complex型 a+bi | _Complex型 a b ── + ── i c c | _Complex型 b a ── - ── i d d | _Complex型 a×c+b×d+(b×c-a×d)i ──────────── c2+d2 |
by seclan