Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
lp_utils.h File Reference
#include <cmath>
#include <cstdlib>
#include "absl/log/check.h"
#include "ortools/base/accurate_sum.h"
#include "ortools/lp_data/lp_types.h"
#include "ortools/lp_data/permutation.h"
#include "ortools/lp_data/scattered_vector.h"
#include "ortools/lp_data/sparse_column.h"

Go to the source code of this file.

Classes

class  operations_research::glop::SumWithOneMissing< supported_infinity_is_positive >
 

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::glop
 

Typedefs

typedef AccurateSum< Fractionaloperations_research::glop::KahanSum
 
typedef SumWithOneMissing< true > operations_research::glop::SumWithPositiveInfiniteAndOneMissing
 
typedef SumWithOneMissing< false > operations_research::glop::SumWithNegativeInfiniteAndOneMissing
 

Functions

Fractional operations_research::glop::Square (Fractional f)
 
static Fractional operations_research::glop::Fractionality (Fractional f)
 
template<class DenseRowOrColumn1 , class DenseRowOrColumn2 >
Fractional operations_research::glop::ScalarProduct (const DenseRowOrColumn1 &u, const DenseRowOrColumn2 &v)
 
template<class DenseRowOrColumn >
Fractional operations_research::glop::ScalarProduct (const DenseRowOrColumn &u, const SparseColumn &v)
 
template<class DenseRowOrColumn >
Fractional operations_research::glop::ScalarProduct (const DenseRowOrColumn &u, const ScatteredColumn &v)
 
template<class DenseRowOrColumn , class DenseRowOrColumn2 >
Fractional operations_research::glop::PreciseScalarProduct (const DenseRowOrColumn &u, const DenseRowOrColumn2 &v)
 
template<class DenseRowOrColumn >
Fractional operations_research::glop::PreciseScalarProduct (const DenseRowOrColumn &u, const SparseColumn &v)
 
template<class DenseRowOrColumn >
Fractional operations_research::glop::PartialScalarProduct (const DenseRowOrColumn &u, const SparseColumn &v, int max_index)
 Computes a scalar product for entries with index not greater than max_index.
 
Fractional operations_research::glop::SquaredNorm (const SparseColumn &v)
 
Fractional operations_research::glop::SquaredNorm (absl::Span< const Fractional > data)
 
Fractional operations_research::glop::SquaredNormAndResetToZero (absl::Span< Fractional > data)
 
Fractional operations_research::glop::SquaredNorm (const DenseColumn &column)
 
Fractional operations_research::glop::SquaredNorm (const ColumnView &v)
 
Fractional operations_research::glop::SquaredNorm (const ScatteredColumn &v)
 
Fractional operations_research::glop::PreciseSquaredNorm (const SparseColumn &v)
 
Fractional operations_research::glop::PreciseSquaredNorm (const DenseColumn &column)
 
Fractional operations_research::glop::PreciseSquaredNorm (const ScatteredColumn &v)
 
Fractional operations_research::glop::InfinityNorm (const DenseColumn &v)
 Returns the maximum of the coefficients of 'v'.
 
Fractional operations_research::glop::InfinityNorm (const SparseColumn &v)
 
Fractional operations_research::glop::InfinityNorm (const ColumnView &v)
 
double operations_research::glop::Density (const DenseRow &row)
 
void operations_research::glop::RemoveNearZeroEntries (Fractional threshold, DenseRow *row)
 
const DenseRowoperations_research::glop::Transpose (const DenseRow &row)
 Similar comment as the other Transpose() implementation above.
 
Fractional operations_research::glop::RestrictedInfinityNorm (const ColumnView &column, const DenseBooleanColumn &rows_to_consider, RowIndex *row_index)
 
void operations_research::glop::SetSupportToFalse (const ColumnView &column, DenseBooleanColumn *b)
 
bool operations_research::glop::IsDominated (const ColumnView &column, const DenseColumn &radius)
 Returns true iff for all 'row' we have '|column[row]| <= radius[row]'.
 
template<typename IndexType >
void operations_research::glop::ComputeNonZeros (const StrictITIVector< IndexType, Fractional > &input, std::vector< IndexType > *non_zeros)
 Computes the positions of the non-zeros of a dense vector.
 
template<typename Container >
bool operations_research::glop::IsAllZero (const Container &input)
 Returns true if the given Fractional container is all zeros.
 
template<typename BoolVector >
bool operations_research::glop::IsAllFalse (const BoolVector &v)
 Returns true if the given vector of bool is all false.
 
template<typename IndexType , typename PermutationIndexType >
void operations_research::glop::PermuteWithScratchpad (const Permutation< PermutationIndexType > &permutation, StrictITIVector< IndexType, Fractional > *zero_scratchpad, StrictITIVector< IndexType, Fractional > *input_output)
 Permutes the given dense vector. It uses for this an all zero scratchpad.
 
template<typename IndexType >
void operations_research::glop::PermuteWithKnownNonZeros (const Permutation< IndexType > &permutation, StrictITIVector< IndexType, Fractional > *zero_scratchpad, StrictITIVector< IndexType, Fractional > *output, std::vector< IndexType > *non_zeros)
 
template<typename IndexType , typename ScatteredRowOrCol >
void operations_research::glop::ClearAndResizeVectorWithNonZeros (IndexType size, ScatteredRowOrCol *v)
 Sets a dense vector for which the non zeros are known to be non_zeros.
 
template<typename IndexType >
void operations_research::glop::ChangeSign (StrictITIVector< IndexType, Fractional > *data)
 Changes the sign of all the entries in the given vector.