Minotaur 0.4.1
Docs for developers
Operations.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2009 - 2025 The Minotaur Team.
5//
6
13#ifndef OPERATIONS_H
14#define OPERATIONS_H
15
16#include "LinearFunction.h"
17
18namespace Minotaur
19{
20bool isInt(double v, double tol = 1e-12);
21
22double InnerProduct(const VariableGroup& g1, const VariableGroup& g2);
23
24double InnerProduct(const std::vector<double>& x, const VariableGroup& g2);
25
27double InnerProduct(const double* x, const double* a, int n);
28
29void symMatDotV(UInt nz, const double* mat, const UInt* irow, const UInt* jcol,
30 const double* v, double* prod);
31
32void BoundsOnDiv(double l0, double u0, double l1, double u1, double& lb,
33 double& ub);
34
37void RevBoundsOnMult(double l0, double u0, double l1, double u1, double& lb,
38 double& ub);
39
41double round(double v);
42
45void BoundsOnProduct(bool zero_x_inf_zero, ConstVariablePtr x0,
46 ConstVariablePtr x1, double& lb, double& ub);
47
50void BoundsOnProduct(bool zero_x_inf_zero, double l0, double u0, double l1,
51 double u1, double& lb, double& ub);
52
53void BoundsOnRecip(double l0, double u0, double& lb, double& ub);
54
56void BoundsOnSquare(ConstVariablePtr x1, double& lb, double& ub);
57
62void BoundsOnSquare(const double x_lb, const double y_lb, double& lb,
63 double& ub);
64
69bool CompareLen(Constraint *c1, Constraint *c2);
70
77double Gcd(double d1, double d2, const double& etol = 1e-9);
78
83double getDistance(const double* Pointa, const double* Pointb, UInt n);
84
88double minArray(const double* A, UInt n);
89
91void displayArray(const double* point, UInt n, std::ostream& out);
92
94void sort(VarVector& vvec, double* x, bool ascend = true);
95void sortRec(VarVector& vvec, double* x, int left, int right, int pivotind);
96
98void toLowerCase(std::string& str);
99
101std::string toClockTime(double t);
102} // namespace Minotaur
103
104#endif
105
Declare the class LinearFunction for storing and modifying a linear function.
Definition: ActiveNodeStore.h:20
double minArray(const double *A, UInt n)
Definition: Operations.cpp:304
void BoundsOnProduct(bool zero_x_inf_zero, ConstVariablePtr x0, ConstVariablePtr x1, double &lb, double &ub)
Definition: Operations.cpp:117
void displayArray(const double *point, UInt n, std::ostream &out)
To display the initial point.
Definition: Operations.cpp:256
bool CompareLen(Constraint *c1, Constraint *c2)
Definition: Operations.cpp:264
double getDistance(const double *Pointa, const double *Pointb, UInt n)
Definition: Operations.cpp:294
std::map< ConstVariablePtr, double, CompareVariablePtr > VariableGroup
Variables should always be constant within a group.
Definition: Types.h:511
void toLowerCase(std::string &str)
Convert a string to lower case.
Definition: Operations.cpp:384
double round(double v)
return the nearest integer to the given double value
Definition: Operations.cpp:80
void BoundsOnSquare(ConstVariablePtr x1, double &lb, double &ub)
Get lower and upper bounds on a square of variable.
Definition: Operations.cpp:224
void sort(VarVector &vvec, double *x, bool ascend=true)
Sort a vector of variables according to values of x.
Definition: Operations.cpp:316
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
std::string toClockTime(double t)
Convert a double representing seconds into wall clock time HH:MM:SS:mm.
Definition: Operations.cpp:394
void RevBoundsOnMult(double l0, double u0, double l1, double u1, double &lb, double &ub)
Definition: Operations.cpp:106
double Gcd(double d1, double d2, const double &etol=1e-9)
Definition: Operations.cpp:269

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025