| 1708 | } |
| 1709 | |
| 1710 | std::function<std::vector<std::pair<int, double>>(int row_idx)> |
| 1711 | RowPairFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_type, int is_row_major) { |
| 1712 | auto inner_function = RowFunctionFromDenseMatric(data, num_row, num_col, data_type, is_row_major); |
| 1713 | if (inner_function != nullptr) { |
| 1714 | return [inner_function] (int row_idx) { |
| 1715 | auto raw_values = inner_function(row_idx); |
| 1716 | std::vector<std::pair<int, double>> ret; |
| 1717 | for (int i = 0; i < static_cast<int>(raw_values.size()); ++i) { |
| 1718 | if (std::fabs(raw_values[i]) > kZeroThreshold || std::isnan(raw_values[i])) { |
| 1719 | ret.emplace_back(i, raw_values[i]); |
| 1720 | } |
| 1721 | } |
| 1722 | return ret; |
| 1723 | }; |
| 1724 | } |
| 1725 | return nullptr; |
| 1726 | } |
| 1727 | |
| 1728 | // data is array of pointers to individual rows |
| 1729 | std::function<std::vector<std::pair<int, double>>(int row_idx)> |
no test coverage detected