/usr/include/BALL/STRUCTURE/RMSDMinimizer.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 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_RMSDMINIMIZER_H
#define BALL_STRUCTURE_RMSDMINIMIZER_H
#ifndef BALL_STRUCTURE_ATOMBIJECTION_H
# include <BALL/STRUCTURE/atomBijection.h>
#endif
#ifndef BALL_MATHS_MATRIX44_H
# include <BALL/MATHS/matrix44.h>
#endif
namespace BALL
{
/** RMSD minimizer class.
This class computes the optimal transformation mapping
one set of three-dimensional points onto another set of
points. It implements the algorithm by Coutsalis et al.
(J. Comput. Chem., 25(15), 1849 (2004)), which computes
the RMSD-optimal transformation by solving an eigenvalue
problem.
\par
\ingroup StructureMapping
*/
class BALL_EXPORT RMSDMinimizer
{
public:
class BALL_EXPORT IncompatibleCoordinateSets
: public Exception::GeneralException
{
public:
IncompatibleCoordinateSets(const char*, int, Size, Size);
};
class BALL_EXPORT TooFewCoordinates
: public Exception::GeneralException
{
public:
TooFewCoordinates(const char*, int, Size);
};
typedef std::vector<Vector3> PointVector;
typedef std::pair<Matrix4x4, double> Result;
static Result computeTransformation(const AtomBijection& ab)
throw(RMSDMinimizer::IncompatibleCoordinateSets, RMSDMinimizer::TooFewCoordinates);
static Result computeTransformation(const PointVector& X, const PointVector& Y)
throw(RMSDMinimizer::IncompatibleCoordinateSets, RMSDMinimizer::TooFewCoordinates);
static double minimizeRMSD(AtomContainer& a, AtomContainer& b)
throw(RMSDMinimizer::IncompatibleCoordinateSets, RMSDMinimizer::TooFewCoordinates);
};
} // namespace BALL
#endif // BALL_STRUCTURE_RMSDMINIMIZER_H
|