added inverse method

This commit is contained in:
2025-04-29 20:33:39 +03:00
parent 4615769682
commit 1c5c9360c8

View File

@@ -359,6 +359,25 @@ namespace omath
};
}
[[nodiscard]]
constexpr std::optional<Mat> Inverted() const
{
const auto det = Determinant();
if (det == 0)
return std::nullopt;
const auto transposed = Transposed();
Mat result;
for (std::size_t row = 0; row < Rows; row++)
for (std::size_t column = 0; column < Rows; column++)
result.At(row, column) = transposed.AlgComplement(row, column);
result /= det;
return {result};
}
private:
std::array<Type, Rows * Columns> m_data;
};