matrix.c unitTest PASS

This commit is contained in:
Nick Haller 2025-11-11 15:53:35 +01:00
parent da8dc2a9ef
commit 9e7fcca725
2 changed files with 10 additions and 1 deletions

View File

@ -56,7 +56,11 @@ Matrix add(const Matrix matrix1, const Matrix matrix2)
{
Matrix result = {0};
if (matrix1.rows != matrix2.rows || matrix1.cols != matrix2.cols)
int broadcast_case =
(matrix1.cols == 1 && matrix1.rows == matrix2.rows) ||
(matrix2.cols == 1 && matrix1.rows == matrix2.rows);
if (!broadcast_case && (matrix1.rows != matrix2.rows || matrix1.cols != matrix2.cols))
{
return result;
}
@ -75,6 +79,8 @@ Matrix add(const Matrix matrix1, const Matrix matrix2)
if (matrix1.cols == 1 && matrix1.rows == matrix2.rows) // Broadcasting
{
result.rows = matrix2.rows;
result.cols = matrix2.cols;
for (unsigned int i = 0; i < matrix1.rows; i++)
{
@ -89,6 +95,9 @@ Matrix add(const Matrix matrix1, const Matrix matrix2)
else if (matrix2.cols == 1 && matrix1.rows == matrix2.rows)
{
result.rows = matrix1.rows;
result.cols = matrix1.cols;
for (unsigned int i = 0; i < matrix2.rows; i++)
{
for (unsigned int j = 0; j < result.cols; j++)

Binary file not shown.