33 #include <Rcs_macros.h> 34 #include <Rcs_MatNd.h> 42 RCHECK_MSG((m1->m == m2->m) && (m1->n == m2->n),
43 "Shape mismatch between two MatNds: %d x %d != %d x %d",
44 m1->m, m1->n, m2->m, m2->n);
51 size_t N = allComb->n;
54 MatNd_setZero(allComb);
57 for (
size_t k = 1; k <= N; k++) {
58 std::vector<size_t> vec(N, 0);
59 std::vector<size_t> currOnes(k, 1);
61 std::copy(std::begin(currOnes), std::end(currOnes), std::end(vec) - k);
65 for (
size_t v = 0; v < vec.size(); v++) {
67 MatNd_set2(allComb, i, v, vec[v]);
70 }
while (std::next_permutation(vec.begin(), vec.end()));
void MatNd_checkShapeEq(MatNd *m1, MatNd *m2)
void findAllBitCombinations(MatNd *allComb)