RDKit Open-source cheminformatics and machine learning.
TriangleSmooth.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2006 Rational Discovery LLC
3 //
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 #ifndef __RD_TRIANGLE_SMOOTH_H__
11 #define __RD_TRIANGLE_SMOOTH_H__
12
13 #include "BoundsMatrix.h"
14
15 namespace DistGeom {
16 //! Smooth the upper and lower bound in a metric matrix so that triangle
17 //! inequality is not violated
18 /*!
19  This an implementation of the O(N^3) algorithm given on pages 252-253 of
20  "Distance Geometry and Molecular Conformation" by G.M.Crippen and T.F.Havel
21  Research Studies Press, 1988. There are other (slightly) more implementations
22  (see pages 301-302 in the above book), but that is for later
23
24  \param boundsMat A pointer to the distance bounds matrix
25  \param tol a tolerance (percent) for errors in the smoothing process
26
27 */
28 bool triangleSmoothBounds(BoundsMatrix *boundsMat, double tol = 0.);