/usr/include/BALL/STRUCTURE/BONDORDERS/ILPBondOrderStrategy.h is in libball1.4-dev 1.4.3~beta1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #ifndef BALL_STRUCTURE_BONDORDERS_ILPBONDORDERSTRATEGY_H
#define BALL_STRUCTURE_BONDORDERS_ILPBONDORDERSTRATEGY_H
#ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENTSTRATEGY_H
# include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignmentStrategy.h>
#endif
#ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H
# include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h>
#endif
// forward declaration for lp_solve
struct _lprec;
typedef struct _lprec lprec;
namespace BALL
{
/** ILP algorithm for bond order assignment.
*
* This class implements an Integer Linear Programming approach
* for the bond order assignment problem that can be used by
* the \link AssignBondOrderProcessor AssignBondOrderProcessor \endlink.
*/
class ILPBondOrderStrategy
: public BondOrderAssignmentStrategy
{
public:
ILPBondOrderStrategy(AssignBondOrderProcessor* parent);
virtual ~ILPBondOrderStrategy();
virtual void clear();
virtual void init();
virtual bool readOptions(const Options& options);
virtual void setDefaultOptions();
virtual boost::shared_ptr<BondOrderAssignment> computeNextSolution();
protected:
bool valid_;
// Vector for mapping from variable indices onto free bonds in the
// order used by the ILP
std::vector<Bond*> index_to_free_bond_;
// number of bond variables in the ILP
Position number_of_free_bonds_;
// Constant penalty (fixed bonds)
float const_penalty_;
// flag indicating whether constraints need to be added
bool first_solution_;
// the ilp
lprec* ilp_;
};
}
#endif // BALL_STRUCTURE_BONDORDERS_ILPBONDORDERSTRATEGY_H
|