Lines Matching refs:complex
25 module std.complex;
46 auto complex(R)(const R re) @safe pure nothrow @nogc
56 auto complex(R, I)(const R re, const I im) @safe pure nothrow @nogc
68 auto a = complex(1.0);
73 auto b = complex(2.0L);
78 auto c = complex(1.0, 2.0);
83 auto d = complex(3.0, 4.0L);
88 auto e = complex(1);
93 auto f = complex(1L, 2);
98 auto g = complex(3, 4.0L);
144 auto c = complex(1.2, 3.4);
485 import std.complex;
490 auto c1 = complex(1.0, 1.0);
583 auto rec3a = 0.79 ^^ complex(6.8, 5.7);
584 auto rec3b = complex(0.79, 0.0) ^^ complex(6.8, 5.7);
588 auto rec4a = (-0.79) ^^ complex(6.8, 5.7);
589 auto rec4b = complex(-0.79, 0.0) ^^ complex(6.8, 5.7);
593 auto rer = a ^^ complex(2.0, 0.0);
600 auto rer2 = (-a) ^^ complex(2.0, 0.0);
606 auto rer3 = (-a) ^^ complex(-2.0, 0.0);
612 auto rer4 = a ^^ complex(-2.0, 0.0);
751 assert(abs(complex(1.0)) == 1.0);
752 assert(abs(complex(0.0, 1.0)) == 1.0);
753 assert(abs(complex(1.0L, -2.0L)) == core.math.sqrt(5.0L));
759 assert(abs(complex(0.0L, -3.2L)) == 3.2L);
760 assert(abs(complex(0.0L, 71.6L)) == 71.6L);
761 assert(abs(complex(-1.0L, 1.0L)) == core.math.sqrt(2.0L));
770 Complex!T a = complex(T(-12), T(3));
779 z = A complex number.
793 assert(sqAbs(complex(0.0)) == 0.0);
794 assert(sqAbs(complex(1.0)) == 1.0);
795 assert(sqAbs(complex(0.0, 1.0)) == 1.0);
796 assert(isClose(sqAbs(complex(1.0L, -2.0L)), 5.0L));
797 assert(isClose(sqAbs(complex(-3.0L, 1.0L)), 10.0L));
798 assert(isClose(sqAbs(complex(1.0f,-1.0f)), 2.0f));
832 assert(arg(complex(1.0)) == 0.0);
833 assert(arg(complex(0.0L, 1.0L)) == PI_2);
834 assert(arg(complex(1.0L, 1.0L)) == PI_4);
855 assert(norm(complex(3.0, 4.0)) == 25.0);
874 assert(conj(complex(1.0)) == complex(1.0));
875 assert(conj(complex(1.0, 2.0)) == complex(1.0, -2.0));
910 assert(proj(complex(1.0)) == complex(1.0));
911 assert(proj(complex(double.infinity, 5.0)) == complex(double.infinity, 0.0));
912 assert(proj(complex(5.0, -double.infinity)) == complex(double.infinity, -0.0));
972 assert(sin(complex(0.0)) == 0.0);
973 assert(sin(complex(2.0, 0)) == core.math.sin(2.0));
979 assert(ceqrel(sin(complex(2.0L, 0)), complex(core.math.sin(2.0L))) >= real.mant_dig - 1);
995 assert(cos(complex(0.0)) == 1.0);
996 assert(cos(complex(1.3, 0.0)) == core.math.cos(1.3));
997 assert(cos(complex(0.0, 5.2)) == std.math.cosh(5.2));
1004 assert(ceqrel(cos(complex(0, 5.2L)), complex(std.math.cosh(5.2L), 0.0L)) >= real.mant_dig - 1);
1005 assert(ceqrel(cos(complex(1.3L)), complex(core.math.cos(1.3L))) >= real.mant_dig - 1);
1026 assert(ceqrel(tan(complex(1.0, 0.0)), complex(std.math.tan(1.0), 0.0)) >= double.mant_dig - 2);
1027 assert(ceqrel(tan(complex(0.0, 1.0)), complex(0.0, std.math.tanh(1.0))) >= double.mant_dig - 2);
1047 assert(asin(complex(0.0)) == 0.0);
1048 assert(isClose(asin(complex(0.5L)), PI / 6));
1056 assert(isClose(asin(complex(0.5f)), float(PI) / 6));
1073 assert(acos(complex(0.0)) == std_math_acos(0.0));
1074 assert(isClose(acos(complex(0.5L)), PI / 3));
1082 assert(isClose(acos(complex(0.5f)), float(PI) / 3));
1107 assert(atan(complex(0.0)) == 0.0);
1108 assert(isClose(atan(sqrt(complex(3.0L))), PI / 3));
1109 assert(isClose(atan(sqrt(complex(3.0f))), float(PI) / 3));
1129 assert(sinh(complex(0.0)) == 0.0);
1130 assert(sinh(complex(1.0L)) == std.math.sinh(1.0L));
1131 assert(sinh(complex(1.0f)) == std.math.sinh(1.0f));
1146 assert(cosh(complex(0.0)) == 1.0);
1147 assert(cosh(complex(1.0L)) == std.math.cosh(1.0L));
1148 assert(cosh(complex(1.0f)) == std.math.cosh(1.0f));
1162 assert(tanh(complex(0.0)) == 0.0);
1163 assert(isClose(tanh(complex(1.0L)), std_math_tanh(1.0L)));
1164 assert(isClose(tanh(complex(1.0f)), std_math_tanh(1.0f)));
1184 assert(asinh(complex(0.0)) == 0.0);
1185 assert(isClose(asinh(complex(1.0L)), std_math_asinh(1.0L)));
1186 assert(isClose(asinh(complex(1.0f)), std_math_asinh(1.0f)));
1200 assert(acosh(complex(1.0)) == 0.0);
1201 assert(isClose(acosh(complex(3.0L)), std_math_acosh(3.0L)));
1202 assert(isClose(acosh(complex(3.0f)), std_math_acosh(3.0f)));
1227 assert(atanh(complex(0.0)) == 0.0);
1228 assert(isClose(atanh(complex(0.5L)), std_math_atanh(0.5L)));
1229 assert(isClose(atanh(complex(0.5f)), std_math_atanh(0.5f)));
1250 assert(expi(1.3e5L) == complex(cos(1.3e5L), sin(1.3e5L)));
1279 assert(coshisinh(3.0L) == complex(cosh(3.0L), sinh(3.0L)));
1334 assert(sqrt(complex(0.0)) == 0.0);
1335 assert(sqrt(complex(1.0L, 0)) == core.math.sqrt(1.0L));
1336 assert(sqrt(complex(-1.0L, 0)) == complex(0, 1.0L));
1337 assert(sqrt(complex(-8.0, -6.0)) == complex(1.0, -3.0));
1344 auto c1 = complex(1.0, 1.0);
1362 auto x = complex(1.2, 3.4);
1365 auto y = complex(1.2, -3.4);
1381 auto x = complex(1.2, 3.4);
1388 assert(complex(1.2, 3.4).toString() == "1.2+3.4i");
1393 auto c = complex(3.0L, 4.0L);
1477 assert(exp(complex(0.0, 0.0)) == complex(1.0, 0.0));
1479 auto a = complex(2.0, 1.0);
1482 auto b = exp(complex(0.0L, 1.0L) * PI);
1490 auto a = exp(complex(0.0, double.infinity));
1492 auto b = exp(complex(0.0, double.infinity));
1494 auto c = exp(complex(0.0, double.nan));
1497 auto d = exp(complex(+double.infinity, 0.0));
1498 assert(d == complex(double.infinity, 0.0));
1499 auto e = exp(complex(-double.infinity, 0.0));
1500 assert(e == complex(0.0));
1501 auto f = exp(complex(-double.infinity, 1.0));
1502 assert(f == complex(0.0));
1503 auto g = exp(complex(+double.infinity, 1.0));
1504 assert(g == complex(double.infinity, double.infinity));
1505 auto h = exp(complex(-double.infinity, +double.infinity));
1506 assert(h == complex(0.0));
1507 auto i = exp(complex(+double.infinity, +double.infinity));
1509 auto j = exp(complex(-double.infinity, double.nan));
1510 assert(j == complex(0.0));
1511 auto k = exp(complex(+double.infinity, double.nan));
1514 auto l = exp(complex(double.nan, 0));
1516 auto m = exp(complex(double.nan, 1));
1518 auto n = exp(complex(double.nan, double.nan));
1527 auto a = exp(complex(0.0, -PI));
1530 auto b = exp(complex(0.0, -2.0 * PI / 3.0));
1531 assert(isClose(b, complex(-0.5L, -0.866025403784438646763L)));
1533 auto c = exp(complex(0.0, PI / 3.0));
1534 assert(isClose(c, complex(0.5L, 0.866025403784438646763L)));
1536 auto d = exp(complex(0.0, 2.0 * PI / 3.0));
1537 assert(isClose(d, complex(-0.5L, 0.866025403784438646763L)));
1539 auto e = exp(complex(0.0, PI));
1621 auto a = complex(2.0, 1.0);
1624 auto b = 2.0 * log10(complex(0.0, 1.0));
1625 auto c = 4.0 * log10(complex(sqrt(2.0) / 2, sqrt(2.0) / 2));
1628 assert(log(complex(-1.0L, 0.0L)) == complex(0.0L, PI));
1629 assert(log(complex(-1.0L, -0.0L)) == complex(0.0L, -PI));
1637 auto a = log(complex(-0.0L, 0.0L));
1638 assert(a == complex(-real.infinity, PI));
1639 auto b = log(complex(0.0L, 0.0L));
1640 assert(b == complex(-real.infinity, +0.0L));
1641 auto c = log(complex(1.0L, real.infinity));
1642 assert(c == complex(real.infinity, PI_2));
1643 auto d = log(complex(1.0L, real.nan));
1646 auto e = log(complex(-real.infinity, 1.0L));
1647 assert(e == complex(real.infinity, PI));
1648 auto f = log(complex(real.infinity, 1.0L));
1649 assert(f == complex(real.infinity, 0.0L));
1650 auto g = log(complex(-real.infinity, real.infinity));
1651 assert(g == complex(real.infinity, 3.0 * PI_4));
1652 auto h = log(complex(real.infinity, real.infinity));
1653 assert(h == complex(real.infinity, PI_4));
1654 auto i = log(complex(real.infinity, real.nan));
1657 auto j = log(complex(real.nan, 1.0L));
1659 auto k = log(complex(real.nan, real.infinity));
1661 auto l = log(complex(real.nan, real.nan));
1671 assert(isClose(a, complex(0.0L, 0.523598775598298873077L), 0.0, 1e-15));
1674 assert(isClose(b, complex(0.0L, 1.04719755119659774615L), 0.0, 1e-15));
1677 assert(isClose(c, complex(0.0L, 1.57079632679489661923L), 0.0, 1e-15));
1680 assert(isClose(d, complex(0.0L, 2.09439510239319549230L), 0.0, 1e-15));
1683 assert(isClose(e, complex(0.0L, 2.61799387799149436538L), 0.0, 1e-15));
1685 auto f = log(complex(-1.0L, 0.0L));
1686 assert(isClose(f, complex(0.0L, PI), 0.0, 1e-15));
1710 auto a = complex(2.0, 1.0);
1711 assert(log10(a) == log(a) / log(complex(10.0)));
1713 auto b = log10(complex(0.0, 1.0)) * 2.0;
1714 auto c = log10(complex(sqrt(2.0) / 2, sqrt(2.0) / 2)) * 4.0;
1724 assert(isClose(a, complex(0.0L, 0.227396058973640224580L), 0.0, 1e-15));
1727 assert(isClose(b, complex(0.0L, 0.454792117947280449161L), 0.0, 1e-15));
1730 assert(isClose(c, complex(0.0L, 0.682188176920920673742L), 0.0, 1e-15));
1733 assert(isClose(d, complex(0.0L, 0.909584235894560898323L), 0.0, 1e-15));
1736 assert(isClose(e, complex(0.0L, 1.13698029486820112290L), 0.0, 1e-15));
1738 auto f = log10(complex(-1.0L, 0.0L));
1739 assert(isClose(f, complex(0.0L, 1.36437635384184134748L), 0.0, 1e-15));
1741 assert(ceqrel(log10(complex(-100.0L, 0.0L)), complex(2.0L, PI / LN10)) >= real.mant_dig - 1);
1742 assert(ceqrel(log10(complex(-100.0L, -0.0L)), complex(2.0L, -PI / LN10)) >= real.mant_dig - 1);
1777 auto a = complex(1.0, 2.0);
1803 assert(pow(complex(0.0), 2.0) == complex(0.0));
1804 assert(pow(complex(5.0), 2.0) == complex(25.0));
1806 auto a = pow(complex(-1.0, 0.0), 0.5);
1807 assert(isClose(a, complex(0.0, +1.0), 0.0, 1e-16));
1809 auto b = pow(complex(-1.0, -0.0), 0.5);
1810 assert(isClose(b, complex(0.0, -1.0), 0.0, 1e-16));
1825 auto a = complex(0.0);
1826 auto b = complex(2.0);
1827 assert(pow(a, b) == complex(0.0));
1829 auto c = complex(0.0L, 1.0L);
1847 assert(pow(2.0, complex(0.0)) == complex(1.0));
1848 assert(pow(2.0, complex(5.0)) == complex(32.0));
1850 auto a = pow(-2.0, complex(-1.0));
1851 assert(isClose(a, complex(-0.5), 0.0, 1e-16));
1853 auto b = pow(-0.5, complex(-1.0));
1854 assert(isClose(b, complex(-2.0), 0.0, 1e-15));
1862 auto a = pow(complex(3.0, 4.0), 2);
1863 assert(isClose(a, complex(-7.0, 24.0)));
1865 auto b = pow(complex(3.0, 4.0), PI);
1866 assert(ceqrel(b, complex(-152.91512205297134, 35.547499631917738)) >= double.mant_dig - 3);
1868 auto c = pow(complex(3.0, 4.0), complex(-2.0, 1.0));
1869 assert(ceqrel(c, complex(0.015351734187477306, -0.0038407695456661503)) >= double.mant_dig - 3);
1871 auto d = pow(PI, complex(2.0, -1.0));
1872 assert(ceqrel(d, complex(4.0790296880118296, -8.9872469554541869)) >= double.mant_dig - 1);
1874 auto e = complex(2.0);
1895 Complex!T ref1 = pow(complex(a), complex(b));
1896 Complex!T res1 = pow(a, complex(b));
1897 Complex!T res2 = pow(complex(a), b);
1904 Complex!T ref2 = pow(complex(a), complex(b));
1905 Complex!T res3 = pow(a, complex(b));
1906 Complex!T res4 = pow(complex(a), b);