15#ifndef MINOTAUREIGEN_H
16#define MINOTAUREIGEN_H
23 class QuadraticFunction;
24 typedef QuadraticFunction *QuadraticFunctionPtr;
25 typedef const QuadraticFunction *ConstQuadraticFunctionPtr;
29 typedef std::pair<double, LinearFunctionPtr> EigenPair;
30 typedef std::vector<EigenPair>::const_iterator EigenPairConstIterator;
33 typedef Eigen *EigenPtr;
103 void getSumOfSquares(std::vector<LinearFunctionPtr> &p_terms,
104 std::vector<LinearFunctionPtr> &n_terms,
105 std::vector<double> &p_const,
106 std::vector<double> &n_const,
162 std::map<ConstVariablePtr, UInt, CompareVariablePtr> indices_;
165 std::vector<ConstVariablePtr> vars_;
210 EigenPairConstIterator
begin()
const;
213 EigenPairConstIterator
end()
const;
223 std::vector<EigenPair> evPairs_;
Declare the class LinearFunction for storing and modifying a linear function.
Construct and manage quadratic functions.
EigenPtr findValues(ConstQuadraticFunctionPtr qf, bool scaletol=false)
Calculate EigenValues only.
~EigenCalculator()
Destroy.
Definition Eigen.h:75
EigenCalculator()
Default constructor.
EigenPtr findVectors(ConstQuadraticFunctionPtr qf)
Calculate EigenVectors as well.
EigenPtr findValues(int n, double **H)
EigenPairConstIterator end() const
Get the last evPair.
Eigen()
Default constructor.
UInt numPositive() const
Get the number of positive eigen values.
UInt numZero() const
Get the number of zero eigen values.
void add(double value, LinearFunctionPtr e_vector, double tol)
Add an eigen value and an eigen vector to the current list.
UInt numNegative() const
Get the number of negative eigen values.
EigenPairConstIterator begin() const
Get the first evPair.
void write(std::ostream &s) const
Display the values and the vectors.
The base class linear function is of the form c'x.
Definition LinearFunction.h:31
Definition QuadraticFunction.h:38
Definition ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition Types.h:30