/usr/include/BALL/STRUCTURE/BONDORDERS/AStarBondOrderStrategy.h is in libball1.4-dev 1.4.3~beta1-3.
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 79 80 81 82 83 84 85 86 87 88 89 | #ifndef BALL_STRUCTURE_BONDORDERS_ASTARBONDORDERSTRATEGY_H
#define BALL_STRUCTURE_BONDORDERS_ASTARBONDORDERSTRATEGY_H
#ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENTSTRATEGY_H
# include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignmentStrategy.h>
#endif
#ifndef BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H
# include <BALL/STRUCTURE/BONDORDERS/partialBondOrderAssignment.h>
#endif
#ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H
# include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h>
#endif
#ifndef BALL_DATATYPE_HASHMAP_H
# include <BALL/DATATYPE/hashMap.h>
#endif
#include <queue>
namespace BALL
{
/** AStar algorithm for bond order assignment.
*
* This class implements an AStar approach for the bond order assignment
* problem that can be used by the \link AssignBondOrderProcessor
* AssignBondOrderProcessor \endlink.
*/
class AStarBondOrderStrategy
: public BondOrderAssignmentStrategy
{
public:
/** @name Constant Definitions
*/
//@{
/// Option names
struct BALL_EXPORT Option
{
/** heuristic defining the tightness of the search critria
* @see Option::Heuristic::SIMPLE
* @see Option::Heuristic::MEDIUM
* @see Option::Heuristic::TIGHT
*/
static const char* HEURISTIC;
};
struct BALL_EXPORT Default
{
static const String HEURISTIC;
};
struct BALL_EXPORT Heuristic
{
static const String SIMPLE;
static const String MEDIUM;
static const String TIGHT;
};
//@}
AStarBondOrderStrategy(AssignBondOrderProcessor* parent);
virtual ~AStarBondOrderStrategy();
virtual void clear();
virtual void init();
virtual bool readOptions(const Options& options);
virtual void setDefaultOptions();
virtual boost::shared_ptr<BondOrderAssignment> computeNextSolution();
protected:
/// The chosen heuristic
PartialBondOrderAssignment::HEURISTIC_INDEX heuristic_index_;
std::priority_queue<PartialBondOrderAssignment> queue_;
/// The priority queue.
// The current number of node expansions.
// step_ + queue_.size() gives the number of touched nodes.
int step_;
};
}
#endif // BALL_STRUCTURE_BONDORDERS_ASTARBONDORDERSTRATEGY_H
|