| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COBALT_ALGORITHMS_RAPPOR_RAPPOR_ANALYZER_UTILS_H_ |
| #define COBALT_ALGORITHMS_RAPPOR_RAPPOR_ANALYZER_UTILS_H_ |
| |
| #include <vector> |
| |
| #include "third_party/eigen/Eigen/SparseCore" |
| #include "util/lossmin/eigen-types.h" |
| |
| namespace cobalt { |
| namespace rappor { |
| |
| // Constructs a submatrix of |full_matrix| composed of columns corresponding to |
| // indices in |second_step_cols|. |num_cohorts| and |num_hashes| are needed to |
| // determine the number of nonzero entries of the matrix. |
| void PrepareSecondRapporStepMatrix( |
| cobalt_lossmin::InstanceSet* second_step_matrix, |
| const std::vector<int>& second_step_cols, |
| const cobalt_lossmin::InstanceSet& full_matrix, int num_cohorts, |
| int num_hashes); |
| |
| } // namespace rappor |
| } // namespace cobalt |
| |
| #endif // COBALT_ALGORITHMS_RAPPOR_RAPPOR_ANALYZER_UTILS_H_ |