/usr/include/BALL/STRUCTURE/BONDORDERS/KGreedyBondOrderStrategy.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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #ifndef BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_H
#define BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_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
#ifndef BALL_STRUCTURE_BONDORDERS_ASTARBONDORDERSTRATEGY_H
# include <BALL/STRUCTURE/BONDORDERS/AStarBondOrderStrategy.h>
#endif
namespace BALL
{
/** K-Greedy algorithm for bond order assignment.
*
* This class implements a K-Greedy approach for the bond order assignment
* problem that can be used by the \link AssignBondOrderProcessor
* AssignBondOrderProcessor \endlink. The implementation of this strategy
* is very similar to the AStar approach and much of its functionality
* can be reused. We thus derive from \link AStarBondOrderStrategy
* AStarBondOrderStrategy \endlink.
*/
class KGreedyBondOrderStrategy
: public AStarBondOrderStrategy
{
public:
/** @name Constant Definitions
*/
//@{
/// Option names
struct BALL_EXPORT Option
{
/** the size of priority queue for the greedy algorithm.
* Default is 1.
* @see Option::Algorithm::K_GREEDY;
* \par
* <b>NOTE:</b> This option is still experimental.
*/
static const char* GREEDY_K_SIZE;
};
struct BALL_EXPORT Default
{
static const int GREEDY_K_SIZE;
};
//@}
KGreedyBondOrderStrategy(AssignBondOrderProcessor* parent);
virtual ~KGreedyBondOrderStrategy();
virtual void clear();
virtual void init();
virtual bool readOptions(const Options& options);
virtual void setDefaultOptions();
virtual boost::shared_ptr<BondOrderAssignment> computeNextSolution();
protected:
float greedy_atom_type_penalty_;
float greedy_bond_length_penalty_;
Size greedy_k_;
vector<PartialBondOrderAssignment> greedy_set_;
Position current_solution_;
int greedy_node_expansions_;
};
}
#endif // BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_H
|