17 ValueType infinityNorm = normal.template lpNorm<Eigen::Infinity>();
18 if (infinityNorm != (ValueType)0) {
19 normal /= infinityNorm;
20 offset /= infinityNorm;
23 if (indexList ==
nullptr) {
25 return map.insert(MapValueType(MapKeyType(normal, offset), std::vector<uint_fast64_t>())).second;
27 auto inserted = map.insert(MapValueType(MapKeyType(normal, offset), *indexList));
28 if (!inserted.second) {
30 inserted.first->second.insert(inserted.first->second.end(), indexList->begin(), indexList->end());
32 return inserted.second;
40 return std::pair<EigenMatrix, EigenVector>();
43 EigenMatrix A(map.size(), map.begin()->first.first.rows());
46 uint_fast64_t row = 0;
47 for (
auto const& mapEntry : map) {
48 A.row(row) = mapEntry.first.first;
49 b(row) = mapEntry.first.second;
52 return std::pair<EigenMatrix, EigenVector>(std::move(A), std::move(b));