52 template<
typename dtype>
76 template<
typename dtype>
81 if (lhs.shape() != rhs.
shape())
86 const auto function = [](std::complex<dtype>& val1, dtype val2) -> std::complex<dtype>
92 rhs.
cbegin(), lhs.begin(),
function);
106 template<
typename dtype>
111 const auto function = [rhs](dtype& value) -> dtype
130 template<
typename dtype>
135 const auto function = [rhs](std::complex<dtype>& value) -> std::complex<dtype>
153 template<
typename dtype>
166 rhs.
cbegin(), returnArray.
begin(), std::plus<dtype>());
179 template<
typename dtype>
184 if (lhs.
shape() != rhs.shape())
189 const auto function = [](dtype val1,
const std::complex<dtype>& val2) -> std::complex<dtype>
197 rhs.cbegin(), returnArray.
begin(),
function);
210 template<
typename dtype>
224 template<
typename dtype>
229 const auto function = [rhs](dtype value) -> dtype
249 template<
typename dtype>
263 template<
typename dtype>
268 const auto function = [rhs](dtype value) -> std::complex<dtype>
288 template<
typename dtype>
302 template<
typename dtype>
307 const auto function = [rhs](std::complex<dtype> value) -> std::complex<dtype>
327 template<
typename dtype>
341 template<
typename dtype>
365 template<
typename dtype>
370 if (lhs.shape() != rhs.
shape())
375 const auto function = [](std::complex<dtype>& val1, dtype val2) -> std::complex<dtype>
381 rhs.
cbegin(), lhs.begin(),
function);
395 template<
typename dtype>
400 const auto function = [rhs](dtype& value) -> dtype
419 template<
typename dtype>
424 const auto function = [rhs](std::complex<dtype>& value) -> std::complex<dtype>
442 template<
typename dtype>
455 rhs.
cbegin(), returnArray.
begin(), std::minus<dtype>());
468 template<
typename dtype>
473 if (lhs.
shape() != rhs.shape())
478 const auto function = [](dtype val1,
const std::complex<dtype>& val2) -> std::complex<dtype>
486 rhs.cbegin(), returnArray.
begin(),
function);
499 template<
typename dtype>
504 if (lhs.shape() != rhs.
shape())
509 const auto function = [](
const std::complex<dtype>&val1, dtype val2) -> std::complex<dtype>
530 template<
typename dtype>
535 const auto function = [rhs](dtype value) -> dtype
555 template<
typename dtype>
560 const auto function = [lhs](dtype value) -> dtype
580 template<
typename dtype>
585 const auto function = [rhs](dtype value) -> std::complex<dtype>
605 template<
typename dtype>
610 const auto function = [lhs](dtype value) -> std::complex<dtype>
630 template<
typename dtype>
635 const auto function = [rhs](std::complex<dtype> value) -> std::complex<dtype>
655 template<
typename dtype>
660 const auto function = [lhs](std::complex<dtype> value) -> std::complex<dtype>
678 template<
typename dtype>
681 const auto function = [](dtype value) -> dtype
699 template<
typename dtype>
710 rhs.
cbegin(), lhs.
begin(), std::multiplies<dtype>());
723 template<
typename dtype>
728 if (lhs.shape() != rhs.
shape())
733 const auto function = [](std::complex<dtype>& val1, dtype val2) -> std::complex<dtype>
739 rhs.
cbegin(), lhs.begin(),
function);
753 template<
typename dtype>
758 const auto function = [rhs](dtype& value) -> dtype
777 template<
typename dtype>
782 const auto function = [rhs](std::complex<dtype>& value) -> std::complex<dtype>
800 template<
typename dtype>
813 rhs.
cbegin(), returnArray.
begin(), std::multiplies<dtype>());
826 template<
typename dtype>
831 if (lhs.
shape() != rhs.shape())
836 const auto function = [](dtype val1,
const std::complex<dtype>& val2) -> std::complex<dtype>
844 rhs.cbegin(), returnArray.
begin(),
function);
857 template<
typename dtype>
871 template<
typename dtype>
876 const auto function = [rhs](dtype value) -> dtype
896 template<
typename dtype>
910 template<
typename dtype>
915 const auto function = [rhs](dtype value) -> std::complex<dtype>
935 template<
typename dtype>
949 template<
typename dtype>
954 const auto function = [rhs](std::complex<dtype> value) -> std::complex<dtype>
974 template<
typename dtype>
988 template<
typename dtype>
1012 template<
typename dtype>
1017 if (lhs.shape() != rhs.
shape())
1022 const auto function = [](std::complex<dtype>& val1, dtype val2) -> std::complex<dtype>
1028 rhs.
cbegin(), lhs.begin(),
function);
1042 template<
typename dtype>
1047 const auto function = [rhs](dtype& value) -> dtype
1049 return value /= rhs;
1066 template<
typename dtype>
1071 const auto function = [rhs](std::complex<dtype>& value) -> std::complex<dtype>
1073 return value /= rhs;
1089 template<
typename dtype>
1102 rhs.
cbegin(), returnArray.
begin(), std::divides<dtype>());
1115 template<
typename dtype>
1120 if (lhs.
shape() != rhs.shape())
1127 const auto function = [](dtype val1,
const std::complex<dtype>& val2) -> std::complex<dtype>
1133 rhs.cbegin(), returnArray.
begin(),
function);
1146 template<
typename dtype>
1151 if (lhs.shape() != rhs.
shape())
1156 const auto function = [](
const std::complex<dtype>&val1, dtype val2) -> std::complex<dtype>
1177 template<
typename dtype>
1182 const auto function = [rhs](dtype value) -> dtype
1202 template<
typename dtype>
1207 const auto function = [lhs](dtype value) -> dtype
1227 template<
typename dtype>
1232 const auto function = [rhs](dtype value) -> std::complex<dtype>
1252 template<
typename dtype>
1257 const auto function = [lhs](dtype value) -> std::complex<dtype>
1277 template<
typename dtype>
1282 const auto function = [rhs](std::complex<dtype> value) -> std::complex<dtype>
1302 template<
typename dtype>
1307 const auto function = [lhs](std::complex<dtype> value) -> std::complex<dtype>
1327 template<
typename dtype>
1338 rhs.
cbegin(), lhs.
begin(), std::modulus<dtype>());
1352 template<
typename dtype>
1357 const auto function = [rhs](dtype& value) -> dtype
1359 return value %= rhs;
1375 template<
typename dtype>
1391 template<
typename dtype>
1407 template<
typename dtype>
1412 [lhs](dtype value) -> dtype
1428 template<
typename dtype>
1453 template<
typename dtype>
1458 const auto function = [rhs](dtype& value) -> dtype
1460 return value |= rhs;
1476 template<
typename dtype>
1492 template<
typename dtype>
1508 template<
typename dtype>
1522 template<
typename dtype>
1533 rhs.
cbegin(), lhs.
begin(), std::bit_and<dtype>());
1547 template<
typename dtype>
1552 const auto function = [rhs](dtype& value) -> dtype
1554 return value &= rhs;
1570 template<
typename dtype>
1586 template<
typename dtype>
1602 template<
typename dtype>
1616 template<
typename dtype>
1627 rhs.
cbegin(), lhs.
begin(), std::bit_xor<dtype>());
1641 template<
typename dtype>
1646 const auto function = [rhs](dtype& value) -> dtype
1648 return value ^= rhs;
1664 template<
typename dtype>
1680 template<
typename dtype>
1696 template<
typename dtype>
1709 template<
typename dtype>
1714 const auto function = [](dtype value) -> dtype
1722 returnArray.
begin(),
function);
1735 template<
typename dtype>
1745 const auto function = [](dtype value1, dtype value2) ->
bool
1747 return value1 && value2;
1765 template<
typename dtype>
1772 const auto function = [rhs](dtype value) ->
bool
1774 return value && rhs;
1778 returnArray.
begin(),
function);
1791 template<
typename dtype>
1805 template<
typename dtype>
1815 const auto function = [](dtype value1, dtype value2) ->
bool
1817 return value1 || value2;
1835 template<
typename dtype>
1842 const auto function = [rhs](dtype value) ->
bool
1844 return value || rhs;
1848 returnArray.
begin(),
function);
1861 template<
typename dtype>
1874 template<
typename dtype>
1881 const auto function = [](dtype value) -> dtype
1887 returnArray.
begin(),
function);
1901 template<
typename dtype>
1909 const auto equalTo = [](dtype lhs, dtype rhs) noexcept ->
bool
1931 template<
typename dtype>
1936 const auto equalTo = [inValue](dtype value) noexcept ->
bool
1942 returnArray.
begin(), equalTo);
1956 template<
typename dtype>
1959 return inArray == inValue;
1971 template<
typename dtype>
1979 const auto notEqualTo = [](dtype lhs, dtype rhs) noexcept ->
bool
2001 template<
typename dtype>
2006 const auto notEqualTo = [inValue](dtype value) noexcept ->
bool
2012 returnArray.
begin(), notEqualTo);
2026 template<
typename dtype>
2029 return inArray != inValue;
2041 template<
typename dtype>
2053 const auto function = [](dtype lhs, dtype rhs) noexcept ->
bool
2073 template<
typename dtype>
2080 const auto function = [inValue](dtype value) noexcept ->
bool
2082 return value < inValue;
2086 returnArray.
begin(),
function);
2100 template<
typename dtype>
2107 const auto function = [inValue](dtype value) noexcept ->
bool
2109 return inValue < value;
2113 returnArray.
begin(),
function);
2127 template<
typename dtype>
2139 const auto function = [](dtype lhs, dtype rhs) noexcept ->
bool
2162 template<
typename dtype>
2169 const auto function = [inValue](dtype value) noexcept ->
bool
2171 return value > inValue;
2175 returnArray.
begin(),
function);
2189 template<
typename dtype>
2196 const auto function = [inValue](dtype value) noexcept ->
bool
2198 return inValue > value;
2202 returnArray.
begin(),
function);
2216 template<
typename dtype>
2228 const auto function = [](dtype lhs, dtype rhs) noexcept ->
bool
2248 template<
typename dtype>
2255 const auto function = [inValue](dtype value) noexcept ->
bool
2257 return value <= inValue;
2261 returnArray.
begin(),
function);
2275 template<
typename dtype>
2282 const auto function = [inValue](dtype value) noexcept ->
bool
2284 return inValue <= value;
2288 returnArray.
begin(),
function);
2302 template<
typename dtype>
2314 const auto function = [](dtype lhs, dtype rhs) noexcept ->
bool
2334 template<
typename dtype>
2341 const auto function = [inValue](dtype value) noexcept ->
bool
2343 return value >= inValue;
2347 returnArray.
begin(),
function);
2361 template<
typename dtype>
2368 const auto function = [inValue](dtype value) noexcept ->
bool
2370 return inValue >= value;
2374 returnArray.
begin(),
function);
2388 template<
typename dtype>
2393 const auto function = [inNumBits](dtype& value) ->
void
2395 value <<= inNumBits;
2412 template<
typename dtype>
2418 returnArray <<= inNumBits;
2431 template<
typename dtype>
2436 const auto function = [inNumBits](dtype& value) ->
void
2438 value >>= inNumBits;
2455 template<
typename dtype>
2461 returnArray >>= inNumBits;
2472 template<
typename dtype>
2477 const auto function = [](dtype& value) ->
void
2495 template<
typename dtype>
2510 template<
typename dtype>
2515 const auto function = [](dtype& value) ->
void
2533 template<
typename dtype>
2550 template<
typename dtype>
2555 inOStream << inArray.
str();