diff --git a/include/Math/ArrayOps.hpp b/include/Math/ArrayOps.hpp index f2c1888..719c326 100644 --- a/include/Math/ArrayOps.hpp +++ b/include/Math/ArrayOps.hpp @@ -108,14 +108,9 @@ template } template [[gnu::always_inline]] constexpr auto promote_shape(const A &a, const B &b) { - if constexpr (ColVector && RowVector) { - return CartesianIndex( - std::integral_constant{}, - check_sizes(unwrapRow(a.numRow()), unwrapCol(b.numCol()))); - } else if constexpr (RowVector && ColVector) { - return CartesianIndex( - std::integral_constant{}, - check_sizes(unwrapRow(b.numRow()), unwrapCol(a.numCol()))); + if constexpr (AbstractVector && AbstractVector) { + return CartesianIndex(std::integral_constant{}, + check_sizes(a.size(), b.size())); } else { auto sa = shape(a); // broadcasting static sizes is awkward, as it can prevent propogating