#include <angle.h>
Public Member Functions | |
| angle () | |
| Default constructor. Some data members are not initialized! | |
| angle (af::tiny< scitbx::vec3< double >, 3 > const &sites_, double angle_ideal_, double weight_) | |
| Constructor. | |
| angle (af::const_ref< scitbx::vec3< double > > const &sites_cart, angle_proxy const &proxy) | |
| Coordinates are copied from sites_cart according to proxy.i_seqs, parameters are copied from proxy. | |
| double | residual () const |
| weight * delta**2. | |
| af::tiny< scitbx::vec3< double >, 3 > | gradients (double epsilon=1.e-100) const |
| Gradients with respect to the three sites. | |
| void | add_gradients (af::ref< scitbx::vec3< double > > const &gradient_array, angle_proxy::i_seqs_type const &i_seqs) const |
| Support for angle_residual_sum. | |
Public Attributes | |
| af::tiny< scitbx::vec3< double >, 3 > | sites |
| Cartesian coordinates of sites forming the angle. | |
| double | angle_ideal |
| Parameter (usually as passed to the constructor). | |
| double | weight |
| Parameter (usually as passed to the constructor). | |
| bool | have_angle_model |
| false in singular situations. | |
| double | angle_model |
| Value of angle formed by the sites. | |
| double | delta |
| Smallest difference between angle_model and angle_ideal taking the periodicity into account. | |
| double residual | ( | ) | const [inline] |
weight * delta**2.
See also: Hendrickson, W.A. (1985). Meth. Enzym. 115, 252-270.
References angle::delta, and angle::weight.
| af::tiny<scitbx::vec3<double>, 3> gradients | ( | double | epsilon = 1.e-100 |
) | const [inline] |
Gradients with respect to the three sites.
The formula for the gradients is singular at delta = 0 and delta = 180. However, the gradients converge to zero near these singularities. To avoid numerical problems, the gradients are set to zero exactly if the intermediate result 1/(1-cos(angle_model)**2) < epsilon.
See also: http://salilab.org/modeller/manual/manual.html, "Features and their derivatives"
References angle::delta, angle::have_angle_model, and angle::weight.
Referenced by angle::add_gradients().
| void add_gradients | ( | af::ref< scitbx::vec3< double > > const & | gradient_array, | |
| angle_proxy::i_seqs_type const & | i_seqs | |||
| ) | const [inline] |
| double delta |
Smallest difference between angle_model and angle_ideal taking the periodicity into account.
See also: angle_delta_deg
Referenced by angle::gradients(), and angle::residual().
1.5.6