21template <
typename SparseColumnLike>
25 sum +=
Square(e.coefficient());
31 return SquaredNormTemplate<SparseColumn>(v);
35 return SquaredNormTemplate<ColumnView>(v);
60 const size_t num_blocks = column.
size().value() / 4;
61 for (
size_t i = 0; i < num_blocks; ++i) {
84 infinity_norm =
std::max(infinity_norm, fabs(v[
row]));
89template <
typename SparseColumnLike>
93 infinity_norm =
std::max(infinity_norm, fabs(e.coefficient()));
99 return InfinityNormTemplate<SparseColumn>(v);
103 return InfinityNormTemplate<ColumnView>(v);
107 if (
row.empty())
return 0.0;
112 return static_cast<double>(sum) /
row.size().value();
118 if (fabs((*
row)[
col]) < threshold) {
127 if (fabs((*column)[
row]) < threshold) {
135 RowIndex* row_index) {
138 if (rows_to_consider[e.row()] && fabs(e.coefficient()) > infinity_norm) {
139 infinity_norm = fabs(e.coefficient());
140 *row_index = e.row();
143 return infinity_norm;
148 if (e.coefficient() != 0.0) {
149 (*b)[e.row()] =
false;
157 if (fabs(e.coefficient()) > radius[e.row()])
return false;
#define DCHECK_GE(val1, val2)
void Add(const FpNumber &value)
typename Iterator::Entry Entry
Fractional PreciseSquaredNorm(const SparseColumn &v)
Fractional InfinityNorm(const DenseColumn &v)
Fractional SquaredNorm(const SparseColumn &v)
Fractional Square(Fractional f)
void RemoveNearZeroEntries(Fractional threshold, DenseRow *row)
double Density(const DenseRow &row)
Fractional InfinityNormTemplate(const SparseColumnLike &column)
void SetSupportToFalse(const ColumnView &column, DenseBooleanColumn *b)
bool IsDominated(const ColumnView &column, const DenseColumn &radius)
Fractional SquaredNormTemplate(const SparseColumnLike &column)
Fractional RestrictedInfinityNorm(const ColumnView &column, const DenseBooleanColumn &rows_to_consider, RowIndex *row_index)
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
bool ShouldUseDenseIteration(double ratio_for_using_dense_representation) const
std::vector< Index > non_zeros
StrictITIVector< Index, Fractional > values