Skip to content

Commit cf15b42

Browse files
committed
Just moving some stuff around
1 parent 404f5a7 commit cf15b42

File tree

1 file changed

+108
-27
lines changed

1 file changed

+108
-27
lines changed

source/Matrices/TMatrix.inl

Lines changed: 108 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,10 @@ namespace Langulus::Math
929929
/// @param rhs - right matrix
930930
/// @return the product
931931
LANGULUS(INLINED)
932-
constexpr auto operator * (const CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
932+
constexpr auto operator * (
933+
const CT::MatrixBased auto& lhs,
934+
const CT::MatrixBased auto& rhs
935+
) noexcept {
933936
using LHS = Deref<decltype(lhs)>;
934937
using RHS = Deref<decltype(rhs)>;
935938
static_assert(LHS::Rows == RHS::Columns and LHS::Columns == RHS::Rows,
@@ -969,7 +972,10 @@ namespace Langulus::Math
969972
/// @param rhs - right matrix
970973
/// @return the added matrices
971974
LANGULUS(INLINED)
972-
constexpr auto operator + (const CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
975+
constexpr auto operator + (
976+
const CT::MatrixBased auto& lhs,
977+
const CT::MatrixBased auto& rhs
978+
) noexcept {
973979
using Ret = LosslessMatrix<decltype(lhs), decltype(rhs)>;
974980
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
975981
Sequence<Ret::Columns>::ForEach([&]<Offset COL>() noexcept {
@@ -987,7 +993,10 @@ namespace Langulus::Math
987993
/// @param rhs - right matrix
988994
/// @return the subtracted matrices
989995
LANGULUS(INLINED)
990-
constexpr auto operator - (const CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
996+
constexpr auto operator - (
997+
const CT::MatrixBased auto& lhs,
998+
const CT::MatrixBased auto& rhs
999+
) noexcept {
9911000
using Ret = LosslessMatrix<decltype(lhs), decltype(rhs)>;
9921001
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
9931002
Sequence<Ret::Columns>::ForEach([&]<Offset COL>() noexcept {
@@ -1005,7 +1014,10 @@ namespace Langulus::Math
10051014
/// @param rhs - matrix
10061015
/// @return the transformed vector
10071016
LANGULUS(INLINED)
1008-
constexpr auto operator * (const CT::VectorBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1017+
constexpr auto operator * (
1018+
const CT::VectorBased auto& lhs,
1019+
const CT::MatrixBased auto& rhs
1020+
) noexcept {
10091021
using Ret = Deref<decltype(lhs)>;
10101022
constexpr auto C = CountOf<Ret>;
10111023
TypeOf<Ret> r[C];
@@ -1020,7 +1032,10 @@ namespace Langulus::Math
10201032
/// @param rhs - matrix
10211033
/// @return the modified matrix
10221034
LANGULUS(INLINED)
1023-
constexpr auto operator + (const CT::VectorBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1035+
constexpr auto operator + (
1036+
const CT::VectorBased auto& lhs,
1037+
const CT::MatrixBased auto& rhs
1038+
) noexcept {
10241039
using Ret = Deref<decltype(rhs)>;
10251040
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
10261041
Sequence<Ret::Columns>::ForEach([&]<Offset COL>() noexcept {
@@ -1034,7 +1049,10 @@ namespace Langulus::Math
10341049
/// @param rhs - matrix
10351050
/// @return the modified matrix
10361051
LANGULUS(INLINED)
1037-
constexpr auto operator - (const CT::VectorBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1052+
constexpr auto operator - (
1053+
const CT::VectorBased auto& lhs,
1054+
const CT::MatrixBased auto& rhs
1055+
) noexcept {
10381056
using Ret = Deref<decltype(rhs)>;
10391057
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
10401058
Sequence<Ret::Columns>::ForEach([&]<Offset COL>() noexcept {
@@ -1048,7 +1066,10 @@ namespace Langulus::Math
10481066
/// @param rhs - vector
10491067
/// @return the transformed vector
10501068
LANGULUS(INLINED)
1051-
constexpr auto operator * (const CT::MatrixBased auto& lhs, const CT::VectorBased auto& rhs) noexcept {
1069+
constexpr auto operator * (
1070+
const CT::MatrixBased auto& lhs,
1071+
const CT::VectorBased auto& rhs
1072+
) noexcept {
10521073
using Ret = Deref<decltype(rhs)>;
10531074
constexpr auto C = CountOf<Ret>;
10541075
TypeOf<Ret> r[C];
@@ -1063,7 +1084,10 @@ namespace Langulus::Math
10631084
/// @param rhs - vector
10641085
/// @return the modified matrix
10651086
LANGULUS(INLINED)
1066-
constexpr auto operator + (const CT::MatrixBased auto& lhs, const CT::VectorBased auto& rhs) noexcept {
1087+
constexpr auto operator + (
1088+
const CT::MatrixBased auto& lhs,
1089+
const CT::VectorBased auto& rhs
1090+
) noexcept {
10671091
using Ret = Deref<decltype(lhs)>;
10681092
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
10691093
Sequence<Ret::Rows>::ForEach([&]<Offset ROW>() noexcept {
@@ -1077,7 +1101,10 @@ namespace Langulus::Math
10771101
/// @param rhs - vector
10781102
/// @return the modified matrix
10791103
LANGULUS(INLINED)
1080-
constexpr auto operator - (const CT::MatrixBased auto& lhs, const CT::VectorBased auto& rhs) noexcept {
1104+
constexpr auto operator - (
1105+
const CT::MatrixBased auto& lhs,
1106+
const CT::VectorBased auto& rhs
1107+
) noexcept {
10811108
using Ret = Deref<decltype(lhs)>;
10821109
TypeOf<Ret> result[Ret::Columns][Ret::Rows];
10831110
Sequence<Ret::Rows>::ForEach([&]<Offset ROW>() noexcept {
@@ -1091,15 +1118,21 @@ namespace Langulus::Math
10911118
/// @param rhs - matrix
10921119
/// @return the scaled matrix
10931120
LANGULUS(INLINED)
1094-
constexpr auto operator * (const CT::ScalarBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1121+
constexpr auto operator * (
1122+
const CT::ScalarBased auto& lhs,
1123+
const CT::MatrixBased auto& rhs
1124+
) noexcept {
10951125
using Ret = Deref<decltype(rhs)>;
10961126
TypeOf<Ret> result[Ret::MemberCount];
10971127
SIMD::Multiply(rhs.mArray, lhs, result);
10981128
return Ret {result};
10991129
}
11001130

11011131
LANGULUS(INLINED)
1102-
constexpr auto operator * (const CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1132+
constexpr auto operator * (
1133+
const CT::MatrixBased auto& lhs,
1134+
const CT::ScalarBased auto& rhs
1135+
) noexcept {
11031136
return rhs * lhs;
11041137
}
11051138

@@ -1108,7 +1141,10 @@ namespace Langulus::Math
11081141
/// @param rhs - scalar
11091142
/// @return the scaled matrix
11101143
LANGULUS(INLINED)
1111-
constexpr auto operator / (const CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) {
1144+
constexpr auto operator / (
1145+
const CT::MatrixBased auto& lhs,
1146+
const CT::ScalarBased auto& rhs
1147+
) {
11121148
using Ret = Deref<decltype(lhs)>;
11131149
TypeOf<Ret> result[Ret::MemberCount];
11141150
SIMD::Divide(lhs.mArray, rhs, result);
@@ -1120,15 +1156,21 @@ namespace Langulus::Math
11201156
/// @param rhs - matrix
11211157
/// @return the modified matrix
11221158
LANGULUS(INLINED)
1123-
constexpr auto operator + (const CT::ScalarBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1159+
constexpr auto operator + (
1160+
const CT::ScalarBased auto& lhs,
1161+
const CT::MatrixBased auto& rhs
1162+
) noexcept {
11241163
using Ret = Deref<decltype(rhs)>;
11251164
TypeOf<Ret> result[Ret::MemberCount];
11261165
SIMD::Add(rhs.mArray, lhs, result);
11271166
return Ret {result};
11281167
}
11291168

11301169
LANGULUS(INLINED)
1131-
constexpr auto operator + (const CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1170+
constexpr auto operator + (
1171+
const CT::MatrixBased auto& lhs,
1172+
const CT::ScalarBased auto& rhs
1173+
) noexcept {
11321174
return rhs + lhs;
11331175
}
11341176

@@ -1137,7 +1179,10 @@ namespace Langulus::Math
11371179
/// @param rhs - scalar
11381180
/// @return the modified matrix
11391181
LANGULUS(INLINED)
1140-
constexpr auto operator - (const CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1182+
constexpr auto operator - (
1183+
const CT::MatrixBased auto& lhs,
1184+
const CT::ScalarBased auto& rhs
1185+
) noexcept {
11411186
using Ret = Deref<decltype(lhs)>;
11421187
TypeOf<Ret> result[Ret::MemberCount];
11431188
SIMD::Subtract(lhs.mArray, rhs, result);
@@ -1150,60 +1195,87 @@ namespace Langulus::Math
11501195
///
11511196
/// Add two matrices
11521197
LANGULUS(INLINED)
1153-
constexpr auto& operator += (CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1198+
constexpr auto& operator += (
1199+
CT::MatrixBased auto& lhs,
1200+
const CT::MatrixBased auto& rhs
1201+
) noexcept {
11541202
SIMD::Add(lhs.mArray, rhs.mArray, lhs.mArray);
11551203
return lhs;
11561204
}
11571205

11581206
/// Add a scalar to a matrix
11591207
LANGULUS(INLINED)
1160-
constexpr auto& operator += (CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1208+
constexpr auto& operator += (
1209+
CT::MatrixBased auto& lhs,
1210+
const CT::ScalarBased auto& rhs
1211+
) noexcept {
11611212
SIMD::Add(lhs.mArray, rhs, lhs.mArray);
11621213
return lhs;
11631214
}
11641215

11651216
/// Add a vector to each column of a matrix
11661217
LANGULUS(INLINED)
1167-
constexpr auto& operator += (CT::MatrixBased auto& lhs, const CT::VectorBased auto& rhs) noexcept {
1218+
constexpr auto& operator += (
1219+
CT::MatrixBased auto& lhs,
1220+
const CT::VectorBased auto& rhs
1221+
) noexcept {
11681222
return (lhs = lhs + rhs);
11691223
}
11701224

11711225
/// Subtract two matrices
11721226
LANGULUS(INLINED)
1173-
constexpr auto& operator -= (CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1227+
constexpr auto& operator -= (
1228+
CT::MatrixBased auto& lhs,
1229+
const CT::MatrixBased auto& rhs
1230+
) noexcept {
11741231
SIMD::Subtract(lhs.mArray, rhs.mArray, lhs.mArray);
11751232
return lhs;
11761233
}
11771234

11781235
/// Subtract a scalar from a matrix
11791236
LANGULUS(INLINED)
1180-
constexpr auto& operator -= (CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1237+
constexpr auto& operator -= (
1238+
CT::MatrixBased auto& lhs,
1239+
const CT::ScalarBased auto& rhs
1240+
) noexcept {
11811241
SIMD::Subtract(lhs.mArray, rhs, lhs.mArray);
11821242
return lhs;
11831243
}
11841244

11851245
/// Subtract a vector from each column of a matrix
11861246
LANGULUS(INLINED)
1187-
constexpr auto& operator -= (CT::MatrixBased auto& lhs, const CT::VectorBased auto& rhs) noexcept {
1247+
constexpr auto& operator -= (
1248+
CT::MatrixBased auto& lhs,
1249+
const CT::VectorBased auto& rhs
1250+
) noexcept {
11881251
return (lhs = lhs - rhs);
11891252
}
11901253

11911254
/// Multiply two matrices
11921255
LANGULUS(INLINED)
1193-
constexpr auto& operator *= (CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1256+
constexpr auto& operator *= (
1257+
CT::MatrixBased auto& lhs,
1258+
const CT::MatrixBased auto& rhs
1259+
) noexcept {
11941260
return (lhs = lhs * rhs);
11951261
}
11961262

11971263
/// Multiply matrix by a scalar
11981264
LANGULUS(INLINED)
1199-
constexpr auto& operator *= (CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1265+
constexpr auto& operator *= (
1266+
CT::MatrixBased auto& lhs,
1267+
const CT::ScalarBased auto& rhs
1268+
) noexcept {
12001269
SIMD::Multiply(lhs.mArray, rhs, lhs.mArray);
12011270
return lhs;
12021271
}
12031272

12041273
/// Divide matrix by a scalar
12051274
LANGULUS(INLINED)
1206-
constexpr auto& operator /= (CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) {
1275+
constexpr auto& operator /= (
1276+
CT::MatrixBased auto& lhs,
1277+
const CT::ScalarBased auto& rhs
1278+
) {
12071279
SIMD::Divide(lhs.mArray, rhs, lhs.mArray);
12081280
return lhs;
12091281
}
@@ -1213,7 +1285,10 @@ namespace Langulus::Math
12131285
/// Comparison
12141286
///
12151287
LANGULUS(INLINED)
1216-
constexpr auto operator == (const CT::MatrixBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1288+
constexpr auto operator == (
1289+
const CT::MatrixBased auto& lhs,
1290+
const CT::MatrixBased auto& rhs
1291+
) noexcept {
12171292
using LHS = Deref<decltype(lhs)>;
12181293
using RHS = Deref<decltype(rhs)>;
12191294
if constexpr (LHS::Columns != RHS::Columns or LHS::Rows != RHS::Rows)
@@ -1223,12 +1298,18 @@ namespace Langulus::Math
12231298
}
12241299

12251300
LANGULUS(INLINED)
1226-
constexpr auto operator == (const CT::MatrixBased auto& lhs, const CT::ScalarBased auto& rhs) noexcept {
1301+
constexpr auto operator == (
1302+
const CT::MatrixBased auto& lhs,
1303+
const CT::ScalarBased auto& rhs
1304+
) noexcept {
12271305
return SIMD::Equals(lhs.mArray, rhs);
12281306
}
12291307

12301308
LANGULUS(INLINED)
1231-
constexpr auto operator == (const CT::ScalarBased auto& lhs, const CT::MatrixBased auto& rhs) noexcept {
1309+
constexpr auto operator == (
1310+
const CT::ScalarBased auto& lhs,
1311+
const CT::MatrixBased auto& rhs
1312+
) noexcept {
12321313
return SIMD::Equals(rhs.mArray, lhs);
12331314
}
12341315

0 commit comments

Comments
 (0)