Rosetta
Namespaces | Classes | Typedefs | Functions | Variables
numeric::kinematic_closure Namespace Reference

Namespaces

 radians
 

Classes

struct  p
 

Typedefs

typedef Eigen::Matrix< Real, 8, 8 > Matrix8
 
typedef Eigen::Matrix< Real, 16, 16 > Matrix16
 
typedef Eigen::Matrix< Real, Eigen::Dynamic, 1, 0, 16, 1 > Vector16
 
using SolverType = linear_algebra::GeneralizedEigenSolver< Matrix16 >
 
typedef utility::fixedsizearray1< Real, 3 > PseudoVector
 
typedef utility::fixedsizearray1< PseudoVector, 3 > PseudoMatrix
 
typedef struct numeric::kinematic_closure::p poly
 
typedef utility::vector1< numeric::SizeIndexList
 
typedef utility::fixedsizearray1< numeric::Real, 3 > Coordinate
 
typedef utility::vector1< CoordinateCoordinateList
 
typedef utility::vector1< numeric::RealParameterList
 
typedef utility::vector1< ParameterListParameterMatrix
 

Functions

void triangle (const utility::fixedsizearray1< Real, 3 > &vbond, utility::fixedsizearray1< Real, 3 > &calpha, utility::fixedsizearray1< Real, 3 > &salpha)
 
void triangle (const utility::fixedsizearray1< Real, 3 > &vbond, utility::fixedsizearray1< Real, 4 > &calpha, utility::fixedsizearray1< Real, 4 > &salpha)
 
void sincos (const utility::fixedsizearray1< Real, 3 > &theta, const int flag, utility::fixedsizearray1< Real, 3 > &cosine, utility::fixedsizearray1< Real, 3 > &sine)
 
void sincos (const utility::fixedsizearray1< Real, 3 > &theta, const int flag, utility::fixedsizearray1< Real, 4 > &cosine, utility::fixedsizearray1< Real, 4 > &sine)
 
void triaxialCoefficients (const utility::fixedsizearray1< Real, 3 > &vb, const utility::fixedsizearray1< Real, 3 > &xi, const utility::fixedsizearray1< Real, 3 > &eta, const utility::fixedsizearray1< Real, 3 > &delta, const utility::fixedsizearray1< Real, 3 > &theta, const utility::vector1< int > &order, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &A, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &B, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &C, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &D, utility::fixedsizearray1< Real, 3 > &cal, utility::fixedsizearray1< Real, 3 > &sal, int &f)
 
void cross (const utility::fixedsizearray1< Real, 3 > &L, const utility::fixedsizearray1< Real, 3 > &r0, utility::fixedsizearray1< Real, 3 > &r)
 
void frame (const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &R, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &U)
 
Real eucDistance (const utility::fixedsizearray1< Real, 3 > &a, const utility::fixedsizearray1< Real, 3 > &b)
 
Real scpn (const utility::fixedsizearray1< Real, 3 > &a, const utility::fixedsizearray1< Real, 3 > &b, const utility::fixedsizearray1< Real, 3 > &c)
 
Real bondangle (const utility::fixedsizearray1< Real, 3 > &a, const utility::fixedsizearray1< Real, 3 > &b, const utility::fixedsizearray1< Real, 3 > &c)
 
Real torsion (const utility::fixedsizearray1< Real, 3 > &a, const utility::fixedsizearray1< Real, 3 > &b, const utility::fixedsizearray1< Real, 3 > &c, const utility::fixedsizearray1< Real, 3 > &d)
 
void chainParams (const int &n, const utility::vector1< utility::fixedsizearray1< Real, 3 > > &atoms, Real &vbond, Real &xi, Real &eta, Real &delta, utility::fixedsizearray1< Real, 3 > &R0, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &Q)
 
void chainXYZ (const int &n, const utility::vector1< Real > &b_len1, const utility::vector1< Real > &b_ang1, const utility::vector1< Real > &t_ang1, const bool space, const utility::fixedsizearray1< Real, 3 > &R0, const utility::vector1< utility::fixedsizearray1< Real, 3 > > &Q, utility::vector1< utility::fixedsizearray1< Real, 3 > > &atoms)
 
void chainXYZ (const int &n, const utility::vector1< Real > &b_len, const utility::vector1< Real > &b_ang, const utility::vector1< Real > &t_ang, utility::vector1< utility::fixedsizearray1< Real, 3 > > &atoms)
 
void chainTORS (const int &n, const utility::vector1< utility::fixedsizearray1< Real, 3 > > &atoms, utility::vector1< Real > &t_ang, utility::vector1< Real > &b_ang, utility::vector1< Real > &b_len, utility::fixedsizearray1< Real, 3 > &R0, utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &Q)
 
void rotateX (const utility::vector1< utility::fixedsizearray1< Real, 3 > > &R, const Real &c, const Real &s, utility::vector1< utility::fixedsizearray1< Real, 3 > > &Rx)
 
void rotateY (const utility::vector1< utility::fixedsizearray1< Real, 3 > > &R, const Real &c, const Real &s, utility::vector1< utility::fixedsizearray1< Real, 3 > > &Ry)
 
void rotateZ (const utility::vector1< utility::fixedsizearray1< Real, 3 > > &R, const Real &c, const Real &s, utility::vector1< utility::fixedsizearray1< Real, 3 > > &Rz)
 
void bridgeObjects (const utility::vector1< utility::fixedsizearray1< Real, 3 > > &atoms, const utility::vector1< Real > &dt, const utility::vector1< Real > &da, const utility::vector1< Real > &db, const utility::vector1< int > &pivots, const utility::vector1< int > &order, utility::vector1< utility::vector1< Real > > &t_ang, utility::vector1< utility::vector1< Real > > &b_ang, utility::vector1< utility::vector1< Real > > &b_len, int &nsol)
 Solve the triaxial loop closure problem for a system of atoms. More...
 
void test_bridgeObjects ()
 
void test_rotateX ()
 
void test_chainTORS ()
 
void test_chainXYZ ()
 
void test_chainParams ()
 
void test_torsion ()
 
void test_bondangle ()
 
void test_scpn ()
 
void test_eucDistance ()
 
void test_frame ()
 
void test_cross ()
 
void test_triaxialCoefficients ()
 
void test_sincos ()
 
void test_triangle ()
 
void chainXYZ (const int &n, const utility::vector1< numeric::Real > &b_len, const utility::vector1< numeric::Real > &b_ang, const utility::vector1< numeric::Real > &t_ang, const bool space, const utility::vector1< numeric::Real > &R0, const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &Q, utility::vector1< utility::fixedsizearray1< numeric::Real, 3 > > &atoms)
 
void bridgeObjects_nonredundant (const utility::vector1< utility::fixedsizearray1< Real, 3 > > &stub1, const utility::vector1< utility::fixedsizearray1< Real, 3 > > &stub2, const utility::vector1< numeric::Real > &torsions_chain1, const utility::vector1< numeric::Real > &torsions_chain2, const utility::vector1< numeric::Real > &angles, const utility::vector1< numeric::Real > &bonds, utility::vector1< utility::vector1< Real > > &pivot_torsions, int &nsol)
 Nonredundant version of the bridgeObject function @detail stub1 are the coordinates of the first pivot and 2 atoms preceeding it; stub2 are the coordinates of the third pivot and 2 atoms after it; torsions_chain1 are the torsions from pivot1 to pivot2, which has a length of (pivot2 - pivot1 - 2); torsions_chain2 are the torsions from pivot2 to pivot3, which has a length of (pivot3 - pivot2 - 2); angles are the bond angles from pivot1 to pivot3, which has a length of (pivot3 - pivot1 + 1); bonds are the bond lengths from pivot1 to pivot3, which has a length of (pivot3 - pivot1); pivot_torsions are the solutions of pivot tosions whose dimension is nsol * 6 where nsol is the number of solutions. More...
 
Eigen::IOFormat scipy (8, 0, ", ", ",\n", "[", "]", "[", "]")
 
void point_value2 (const utility::fixedsizearray1< Real, 3 > &A, const utility::vector1< Real > &t, utility::vector1< Real > &C)
 dixon functions /// More...
 
void point_value4 (const utility::vector1< Real > &A, const utility::vector1< Real > &t, utility::vector1< Real > &C)
 
void point_value6 (const utility::vector1< Real > &B, const utility::vector1< Real > &t, utility::vector1< Real > &C)
 
void point_value8 (const utility::vector1< Real > &A, const utility::vector1< Real > &t, utility::vector1< Real > &C)
 
void point_value16 (const utility::vector1< Real > &A, const utility::vector1< Real > &t, utility::vector1< Real > &C)
 
void polyProduct2x2 (const utility::fixedsizearray1< Real, 3 > &A, const utility::fixedsizearray1< Real, 3 > &B, utility::vector1< Real > &C)
 
void polyProduct4x2 (const utility::vector1< Real > &A, const utility::fixedsizearray1< Real, 3 > &B, utility::vector1< Real > &C)
 
void polyProduct4x4 (const utility::vector1< Real > &A, const utility::vector1< Real > &B, utility::vector1< Real > &C)
 
void polyProduct4sq (const utility::vector1< Real > &A, utility::vector1< Real > &C)
 
void polyProduct6x6 (const utility::vector1< Real > &A, const utility::vector1< Real > &B, utility::vector1< Real > &C)
 
void polyProduct12x4 (const utility::vector1< Real > &A, const utility::vector1< Real > &B, utility::vector1< Real > &C)
 
void polyProduct8x8 (const utility::vector1< Real > &A, const utility::vector1< Real > &B, utility::vector1< Real > &C)
 
void polyProduct8sq (const utility::vector1< Real > &A, utility::vector1< Real > &C)
 
void vectorDiff (const utility::vector1< Real > &A, const utility::vector1< Real > &B, utility::vector1< Real > &C)
 
void dixonResultant (const utility::vector1< utility::vector1< Real > > &A, const utility::vector1< utility::vector1< Real > > &B, const utility::vector1< utility::vector1< Real > > &C, const utility::vector1< utility::vector1< Real > > &D, utility::vector1< utility::vector1< utility::vector1< Real > > > &R)
 
void build_dixon_matrices (PseudoMatrix const &A, PseudoMatrix const &B, PseudoMatrix const &C, PseudoMatrix const &D, Matrix8 &R0, Matrix8 &R1, Matrix8 &R2)
 
void build_sin_and_cos (utility::vector1< PseudoVector > const &u, utility::vector1< PseudoVector > &sin, utility::vector1< PseudoVector > &cos)
 
void dixon_eig (PseudoMatrix const &A, PseudoMatrix const &B, PseudoMatrix const &C, PseudoMatrix const &D, vector1< int > const &, utility::vector1< utility::fixedsizearray1< Real, 3 > > &cos, utility::vector1< utility::fixedsizearray1< Real, 3 > > &sin, utility::vector1< utility::fixedsizearray1< Real, 3 > > &u, int &num_solutions)
 
void dixon_sturm (const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &A, const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &B, const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &C, const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &D, const utility::vector1< int > &order, utility::vector1< utility::fixedsizearray1< Real, 3 > > &cos, utility::vector1< utility::fixedsizearray1< Real, 3 > > &sin, utility::vector1< utility::fixedsizearray1< Real, 3 > > &tau, int &nsol)
 
void test_point_value2 ()
 
void test_polyProduct6x6 ()
 
void test_polyProduct4sq ()
 
void test_polyProduct4x4 ()
 
void test_polyProduct4x2 ()
 
void test_polyProduct2x2 ()
 
void test_dixon ()
 
void dixon_eig (const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &A, const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &B, const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &C, const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &D, const utility::vector1< int > &order, utility::vector1< utility::fixedsizearray1< numeric::Real, 3 > > &cos, utility::vector1< utility::fixedsizearray1< numeric::Real, 3 > > &sin, utility::vector1< utility::fixedsizearray1< numeric::Real, 3 > > &tau, int &nsol)
 
bool vectorsEqual (const utility::vector1< Real > &A, const utility::vector1< Real > &B)
 
template<class Iterable >
void printVector (const Iterable &V)
 helper functions /// More...
 
template<class MatrixLike >
void printMatrix (const MatrixLike &M)
 prints the matrix More...
 
template<class MatrixLike >
void printTranspose (const MatrixLike &M)
 
template<Size rows>
void multMatrix (const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, rows >, rows > &A, const utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &B, utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &C)
 
template<Size rows>
void multTransMatrix (const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, rows >, rows > &A, const utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &B, utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &C)
 
void initialize_sturm (double *tol_secant, int *max_iter_sturm, int *max_iter_secant)
 
double hyper_tan (double a, double x)
 
int modp (poly *u, poly *v, poly *r)
 
int buildsturm (int ord, poly *sseq)
 
int numroots (int np, poly *sseq, int *atneg, int *atpos)
 
double evalpoly (int ord, double *coef, double x)
 
int numchanges (int np, poly *sseq, double a)
 
int modrf (int ord, double *coef, double a, double b, double *val)
 
void sbisect (int np, poly *sseq, double min, double max, int atmin, int atmax, double *roots)
 
void solve_sturm (const int &p_order, int &n_root, const utility::vector1< double > &poly_coeffs, utility::vector1< double > &roots)
 
Real dot (Coordinate const &a, Coordinate const &b)
 
Coordinate cross (Coordinate const &a, Coordinate const &b)
 
Coordinate norm (Coordinate const &a)
 
std::ostream & operator<< (std::ostream &out, ParameterList const &x)
 
std::ostream & operator<< (std::ostream &out, ParameterMatrix const &xx)
 
Coordinate operator+ (Coordinate const &a, Coordinate const &b)
 
Coordinate operator- (Coordinate const &a, Coordinate const &b)
 
Coordinate operator* (Coordinate const &a, Real const &k)
 
Coordinate operator* (Real const &k, Coordinate const &a)
 
Coordinate operator/ (Coordinate const &a, Real const &k)
 
Coordinate operator/ (Real const &k, Coordinate const &a)
 
template<class T >
Coordinateoperator<< (Coordinate &a, xyzVector< T > const &b)
 
template<class T >
xyzVector< T > & operator<< (xyzVector< T > &a, Coordinate const &b)
 

Variables

string skipl = "\n\n"
 
double RELERROR
 
int MAXIT
 
int MAX_ITER_SECANT
 

Typedef Documentation

◆ Coordinate

◆ CoordinateList

◆ IndexList

◆ Matrix16

◆ Matrix8

◆ ParameterList

◆ ParameterMatrix

◆ poly

◆ PseudoMatrix

◆ PseudoVector

◆ SolverType

◆ Vector16

typedef Eigen::Matrix<Real, Eigen::Dynamic, 1, 0, 16, 1> numeric::kinematic_closure::Vector16

Function Documentation

◆ bondangle()

numeric::Real numeric::kinematic_closure::bondangle ( const utility::fixedsizearray1< Real, 3 > &  a,
const utility::fixedsizearray1< Real, 3 > &  b,
const utility::fixedsizearray1< Real, 3 > &  c 
)

◆ bridgeObjects()

void numeric::kinematic_closure::bridgeObjects ( const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  atoms,
const utility::vector1< Real > &  dt,
const utility::vector1< Real > &  da,
const utility::vector1< Real > &  db,
const utility::vector1< int > &  pivots,
const utility::vector1< int > &  order,
utility::vector1< utility::vector1< Real > > &  t_ang,
utility::vector1< utility::vector1< Real > > &  b_ang,
utility::vector1< utility::vector1< Real > > &  b_len,
int &  nsol 
)

Solve the triaxial loop closure problem for a system of atoms.

Parameters
[in]atoms- matrix of cartesian coordiantes of N-CA-C atoms indexed as atoms[atom][dimension]
[in]dt- desired torsions for each atom
[in]da- desired bond angle for each atom
[in]db- desired bond length for each atom
[in]pivots- 3 indices (base 1) of atoms to be used as loop closure pivots
[in]order- length 3 vector giving order to solve for the tau parameters (use 1,2,3 if unsure)
[out]t_ang- matrix giving torsion angles for each atom for each solution, indexed as t_ang[solution][atom]
[out]b_ang- matrix giving bond angles for each atom for each solution, indexed as b_ang[solution][atom]
[out]b_len- matrix giving bond lengths for each atom for each solution, indexed as b_len[solution][atom]
[out]nsol- number of solutions found
Global Read:
Global Write:
Returns
Remarks
dt, da, and db are cast to Real precision when placed in t_ang1,2, b_ang1,2 and b_len1,2. Solution is carried out in Real precision. Solutions are cast back to Reals when placed into t_ang.
References:
Author
Evangelos A. Coutsias
Daniel J. Mandell

References spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::A, atoms, C, local::chain1, local::chain2, chainParams(), chainXYZ(), spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::D, basic::options::OptionKeys::out::path::db, deg2rad, dixon_eig(), create_a3b_hbs::f, create_a3b_hbs::i, create_a3b_hbs::j, create_a3b_hbs::k, kk, test.G201_Module_Structure::l1, internal_coordinates::loop, multMatrix(), multTransMatrix(), kmeans_adaptive_kernel_density_bb_dependent_rotlib::n, N, run_backbone::pivots, predPRE::R2, rotateX(), rotateZ(), torsion(), and triaxialCoefficients().

Referenced by bridgeObjects_nonredundant(), ik_arg_asp_frnt(), ik_arg_asp_side(), ik_arg_glu_frnt(), ik_arg_glu_side(), ik_his4(), ik_his_clamp(), ik_lys_ctp_asp(), ik_lys_ctp_glu(), KIC_loop_close(), loop_closure_test(), test_bridgeObjects(), test_bridgeObjects(), test_kc(), and test_kc2().

◆ bridgeObjects_nonredundant()

void numeric::kinematic_closure::bridgeObjects_nonredundant ( const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  stub1,
const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  stub2,
const utility::vector1< numeric::Real > &  torsions_chain1,
const utility::vector1< numeric::Real > &  torsions_chain2,
const utility::vector1< numeric::Real > &  angles,
const utility::vector1< numeric::Real > &  bonds,
utility::vector1< utility::vector1< Real > > &  pivot_torsions,
int &  nsol 
)

Nonredundant version of the bridgeObject function @detail stub1 are the coordinates of the first pivot and 2 atoms preceeding it; stub2 are the coordinates of the third pivot and 2 atoms after it; torsions_chain1 are the torsions from pivot1 to pivot2, which has a length of (pivot2 - pivot1 - 2); torsions_chain2 are the torsions from pivot2 to pivot3, which has a length of (pivot3 - pivot2 - 2); angles are the bond angles from pivot1 to pivot3, which has a length of (pivot3 - pivot1 + 1); bonds are the bond lengths from pivot1 to pivot3, which has a length of (pivot3 - pivot1); pivot_torsions are the solutions of pivot tosions whose dimension is nsol * 6 where nsol is the number of solutions.

References oop_conformations::angles, atoms, bridgeObjects(), basic::options::OptionKeys::out::path::db, create_a3b_hbs::i, create_a3b_hbs::j, and run_backbone::pivots.

◆ build_dixon_matrices()

void numeric::kinematic_closure::build_dixon_matrices ( PseudoMatrix const &  A,
PseudoMatrix const &  B,
PseudoMatrix const &  C,
PseudoMatrix const &  D,
Matrix8 R0,
Matrix8 R1,
Matrix8 R2 
)

◆ build_sin_and_cos()

void numeric::kinematic_closure::build_sin_and_cos ( utility::vector1< PseudoVector > const &  u,
utility::vector1< PseudoVector > &  sin,
utility::vector1< PseudoVector > &  cos 
)

◆ buildsturm()

int numeric::kinematic_closure::buildsturm ( int  ord,
poly sseq 
)
inline

◆ chainParams()

void numeric::kinematic_closure::chainParams ( const int &  n,
const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  atoms,
Real vbond,
Real xi,
Real eta,
Real delta,
utility::fixedsizearray1< Real, 3 > &  R0,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  Q 
)

◆ chainTORS()

void numeric::kinematic_closure::chainTORS ( const int &  n,
const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  atoms,
utility::vector1< Real > &  t_ang,
utility::vector1< Real > &  b_ang,
utility::vector1< Real > &  b_len,
utility::fixedsizearray1< Real, 3 > &  R0,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  Q 
)

◆ chainXYZ() [1/3]

void numeric::kinematic_closure::chainXYZ ( const int &  n,
const utility::vector1< numeric::Real > &  b_len,
const utility::vector1< numeric::Real > &  b_ang,
const utility::vector1< numeric::Real > &  t_ang,
const bool  space,
const utility::vector1< numeric::Real > &  R0,
const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, 3 >, 3 > &  Q,
utility::vector1< utility::fixedsizearray1< numeric::Real, 3 > > &  atoms 
)

◆ chainXYZ() [2/3]

void numeric::kinematic_closure::chainXYZ ( const int &  n,
const utility::vector1< Real > &  b_len,
const utility::vector1< Real > &  b_ang,
const utility::vector1< Real > &  t_ang,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  atoms 
)

◆ chainXYZ() [3/3]

void numeric::kinematic_closure::chainXYZ ( const int &  n,
const utility::vector1< Real > &  b_len1,
const utility::vector1< Real > &  b_ang1,
const utility::vector1< Real > &  t_ang1,
const bool  space,
const utility::fixedsizearray1< Real, 3 > &  R0,
const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  Q,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  atoms 
)

◆ cross() [1/2]

void numeric::kinematic_closure::cross ( const utility::fixedsizearray1< Real, 3 > &  L,
const utility::fixedsizearray1< Real, 3 > &  r0,
utility::fixedsizearray1< Real, 3 > &  r 
)

◆ cross() [2/2]

Coordinate numeric::kinematic_closure::cross ( Coordinate const &  a,
Coordinate const &  b 
)

References a, and compute_difference::b.

◆ dixon_eig() [1/2]

◆ dixon_eig() [2/2]

void numeric::kinematic_closure::dixon_eig ( PseudoMatrix const &  A,
PseudoMatrix const &  B,
PseudoMatrix const &  C,
PseudoMatrix const &  D,
vector1< int > const &  ,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  cos,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  sin,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  u,
int &  num_solutions 
)

◆ dixon_sturm()

void numeric::kinematic_closure::dixon_sturm ( const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  A,
const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  B,
const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  C,
const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  D,
const utility::vector1< int > &  order,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  cos,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  sin,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  tau,
int &  nsol 
)

◆ dixonResultant()

void numeric::kinematic_closure::dixonResultant ( const utility::vector1< utility::vector1< Real > > &  A,
const utility::vector1< utility::vector1< Real > > &  B,
const utility::vector1< utility::vector1< Real > > &  C,
const utility::vector1< utility::vector1< Real > > &  D,
utility::vector1< utility::vector1< utility::vector1< Real > > > &  R 
)

◆ dot()

Real numeric::kinematic_closure::dot ( Coordinate const &  a,
Coordinate const &  b 
)

References a, and compute_difference::b.

◆ eucDistance()

Real numeric::kinematic_closure::eucDistance ( const utility::fixedsizearray1< Real, 3 > &  a,
const utility::fixedsizearray1< Real, 3 > &  b 
)

◆ evalpoly()

double numeric::kinematic_closure::evalpoly ( int  ord,
double coef,
double  x 
)
inline

References create_a3b_hbs::f, evaluate_beta_mutants::fp, and x.

Referenced by numchanges().

◆ frame()

void numeric::kinematic_closure::frame ( const utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  R,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  U 
)

◆ hyper_tan()

double numeric::kinematic_closure::hyper_tan ( double  a,
double  x 
)
inline

◆ initialize_sturm()

void numeric::kinematic_closure::initialize_sturm ( double tol_secant,
int *  max_iter_sturm,
int *  max_iter_secant 
)
inline

References MAX_ITER_SECANT, MAXIT, and RELERROR.

Referenced by dixon_sturm().

◆ modp()

int numeric::kinematic_closure::modp ( poly u,
poly v,
poly r 
)
inline

◆ modrf()

int numeric::kinematic_closure::modrf ( int  ord,
double coef,
double  a,
double  b,
double val 
)
inline

◆ multMatrix()

template<Size rows>
void numeric::kinematic_closure::multMatrix ( const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, rows >, rows > &  A,
const utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &  B,
utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &  C 
)

◆ multTransMatrix()

template<Size rows>
void numeric::kinematic_closure::multTransMatrix ( const utility::fixedsizearray1< utility::fixedsizearray1< numeric::Real, rows >, rows > &  A,
const utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &  B,
utility::vector1< utility::fixedsizearray1< numeric::Real, rows > > &  C 
)

◆ norm()

Coordinate numeric::kinematic_closure::norm ( Coordinate const &  a)

References a.

◆ numchanges()

int numeric::kinematic_closure::numchanges ( int  np,
poly sseq,
double  a 
)
inline

References a, evalpoly(), create_a3b_hbs::f, and docking::s.

Referenced by sbisect(), and solve_sturm().

◆ numroots()

int numeric::kinematic_closure::numroots ( int  np,
poly sseq,
int *  atneg,
int *  atpos 
)
inline

◆ operator*() [1/2]

Coordinate numeric::kinematic_closure::operator* ( Coordinate const &  a,
Real const &  k 
)

References a, and create_a3b_hbs::k.

◆ operator*() [2/2]

Coordinate numeric::kinematic_closure::operator* ( Real const &  k,
Coordinate const &  a 
)

References a, and create_a3b_hbs::k.

◆ operator+()

Coordinate numeric::kinematic_closure::operator+ ( Coordinate const &  a,
Coordinate const &  b 
)

References a, and compute_difference::b.

◆ operator-()

Coordinate numeric::kinematic_closure::operator- ( Coordinate const &  a,
Coordinate const &  b 
)

References a, and compute_difference::b.

◆ operator/() [1/2]

Coordinate numeric::kinematic_closure::operator/ ( Coordinate const &  a,
Real const &  k 
)

References a, and create_a3b_hbs::k.

◆ operator/() [2/2]

Coordinate numeric::kinematic_closure::operator/ ( Real const &  k,
Coordinate const &  a 
)

References a, and create_a3b_hbs::k.

◆ operator<<() [1/4]

template<class T >
Coordinate& numeric::kinematic_closure::operator<< ( Coordinate a,
xyzVector< T > const &  b 
)

References a, and compute_difference::b.

◆ operator<<() [2/4]

std::ostream & numeric::kinematic_closure::operator<< ( std::ostream &  out,
ParameterList const &  x 
)

◆ operator<<() [3/4]

std::ostream & numeric::kinematic_closure::operator<< ( std::ostream &  out,
ParameterMatrix const &  xx 
)

◆ operator<<() [4/4]

template<class T >
xyzVector<T>& numeric::kinematic_closure::operator<< ( xyzVector< T > &  a,
Coordinate const &  b 
)

◆ point_value16()

void numeric::kinematic_closure::point_value16 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  t,
utility::vector1< Real > &  C 
)

◆ point_value2()

void numeric::kinematic_closure::point_value2 ( const utility::fixedsizearray1< Real, 3 > &  A,
const utility::vector1< Real > &  t,
utility::vector1< Real > &  C 
)

◆ point_value4()

void numeric::kinematic_closure::point_value4 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  t,
utility::vector1< Real > &  C 
)

◆ point_value6()

void numeric::kinematic_closure::point_value6 ( const utility::vector1< Real > &  B,
const utility::vector1< Real > &  t,
utility::vector1< Real > &  C 
)

References C, create_a3b_hbs::i, and predPRE::t.

Referenced by dixon_sturm().

◆ point_value8()

void numeric::kinematic_closure::point_value8 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  t,
utility::vector1< Real > &  C 
)

◆ polyProduct12x4()

void numeric::kinematic_closure::polyProduct12x4 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B,
utility::vector1< Real > &  C 
)

◆ polyProduct2x2()

void numeric::kinematic_closure::polyProduct2x2 ( const utility::fixedsizearray1< Real, 3 > &  A,
const utility::fixedsizearray1< Real, 3 > &  B,
utility::vector1< Real > &  C 
)

◆ polyProduct4sq()

void numeric::kinematic_closure::polyProduct4sq ( const utility::vector1< Real > &  A,
utility::vector1< Real > &  C 
)

◆ polyProduct4x2()

void numeric::kinematic_closure::polyProduct4x2 ( const utility::vector1< Real > &  A,
const utility::fixedsizearray1< Real, 3 > &  B,
utility::vector1< Real > &  C 
)

◆ polyProduct4x4()

void numeric::kinematic_closure::polyProduct4x4 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B,
utility::vector1< Real > &  C 
)

◆ polyProduct6x6()

void numeric::kinematic_closure::polyProduct6x6 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B,
utility::vector1< Real > &  C 
)

◆ polyProduct8sq()

void numeric::kinematic_closure::polyProduct8sq ( const utility::vector1< Real > &  A,
utility::vector1< Real > &  C 
)

◆ polyProduct8x8()

void numeric::kinematic_closure::polyProduct8x8 ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B,
utility::vector1< Real > &  C 
)

◆ printMatrix()

template<class MatrixLike >
void numeric::kinematic_closure::printMatrix ( const MatrixLike &  M)

prints the matrix

This function used to intentionally print the transpose of the matrix. The rational was that "we use row-major indexing". That didn't make any sense to me, and I'd been mislead by the implicit transpose a couple of times, so I got rid of it.

References utility::io::oc::cout, and build_restypes::elem.

Referenced by test_bridgeObjects(), test_chainParams(), test_chainTORS(), test_chainXYZ(), test_dixon(), test_frame(), test_rotateX(), and test_triaxialCoefficients().

◆ printTranspose()

template<class MatrixLike >
void numeric::kinematic_closure::printTranspose ( const MatrixLike &  M)

◆ printVector()

template<class Iterable >
void numeric::kinematic_closure::printVector ( const Iterable &  V)

◆ rotateX()

void numeric::kinematic_closure::rotateX ( const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  R,
const Real c,
const Real s,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  Rx 
)

◆ rotateY()

void numeric::kinematic_closure::rotateY ( const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  R,
const Real c,
const Real s,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  Ry 
)

◆ rotateZ()

void numeric::kinematic_closure::rotateZ ( const utility::vector1< utility::fixedsizearray1< Real, 3 > > &  R,
const Real c,
const Real s,
utility::vector1< utility::fixedsizearray1< Real, 3 > > &  Rz 
)

◆ sbisect()

void numeric::kinematic_closure::sbisect ( int  np,
poly sseq,
double  min,
double  max,
int  atmin,
int  atmax,
double roots 
)
inline

◆ scipy()

Eigen::IOFormat numeric::kinematic_closure::scipy ( ,
,
,
,
,
\n"  ,
""  [", "],
""  [", "] 
)

◆ scpn()

Real numeric::kinematic_closure::scpn ( const utility::fixedsizearray1< Real, 3 > &  a,
const utility::fixedsizearray1< Real, 3 > &  b,
const utility::fixedsizearray1< Real, 3 > &  c 
)

◆ sincos() [1/2]

void numeric::kinematic_closure::sincos ( const utility::fixedsizearray1< Real, 3 > &  theta,
const int  flag,
utility::fixedsizearray1< Real, 3 > &  cosine,
utility::fixedsizearray1< Real, 3 > &  sine 
)

◆ sincos() [2/2]

void numeric::kinematic_closure::sincos ( const utility::fixedsizearray1< Real, 3 > &  theta,
const int  flag,
utility::fixedsizearray1< Real, 4 > &  cosine,
utility::fixedsizearray1< Real, 4 > &  sine 
)

◆ solve_sturm()

void numeric::kinematic_closure::solve_sturm ( const int &  p_order,
int &  n_root,
const utility::vector1< double > &  poly_coeffs,
utility::vector1< double > &  roots 
)
inline

◆ test_bondangle()

void numeric::kinematic_closure::test_bondangle ( )

◆ test_bridgeObjects()

void numeric::kinematic_closure::test_bridgeObjects ( )

◆ test_chainParams()

void numeric::kinematic_closure::test_chainParams ( )

◆ test_chainTORS()

void numeric::kinematic_closure::test_chainTORS ( )

◆ test_chainXYZ()

void numeric::kinematic_closure::test_chainXYZ ( )

◆ test_cross()

void numeric::kinematic_closure::test_cross ( )

◆ test_dixon()

void numeric::kinematic_closure::test_dixon ( )

◆ test_eucDistance()

void numeric::kinematic_closure::test_eucDistance ( )

◆ test_frame()

void numeric::kinematic_closure::test_frame ( )

◆ test_point_value2()

void numeric::kinematic_closure::test_point_value2 ( )

◆ test_polyProduct2x2()

void numeric::kinematic_closure::test_polyProduct2x2 ( )

◆ test_polyProduct4sq()

void numeric::kinematic_closure::test_polyProduct4sq ( )

◆ test_polyProduct4x2()

void numeric::kinematic_closure::test_polyProduct4x2 ( )

◆ test_polyProduct4x4()

void numeric::kinematic_closure::test_polyProduct4x4 ( )

◆ test_polyProduct6x6()

void numeric::kinematic_closure::test_polyProduct6x6 ( )

◆ test_rotateX()

void numeric::kinematic_closure::test_rotateX ( )

◆ test_scpn()

void numeric::kinematic_closure::test_scpn ( )

◆ test_sincos()

void numeric::kinematic_closure::test_sincos ( )

◆ test_torsion()

void numeric::kinematic_closure::test_torsion ( )

◆ test_triangle()

void numeric::kinematic_closure::test_triangle ( )

References printVector(), and triangle().

◆ test_triaxialCoefficients()

void numeric::kinematic_closure::test_triaxialCoefficients ( )

◆ torsion()

numeric::Real numeric::kinematic_closure::torsion ( const utility::fixedsizearray1< Real, 3 > &  a,
const utility::fixedsizearray1< Real, 3 > &  b,
const utility::fixedsizearray1< Real, 3 > &  c,
const utility::fixedsizearray1< Real, 3 > &  d 
)

◆ triangle() [1/2]

void numeric::kinematic_closure::triangle ( const utility::fixedsizearray1< Real, 3 > &  vbond,
utility::fixedsizearray1< Real, 3 > &  calpha,
utility::fixedsizearray1< Real, 3 > &  salpha 
)

◆ triangle() [2/2]

void numeric::kinematic_closure::triangle ( const utility::fixedsizearray1< Real, 3 > &  vbond,
utility::fixedsizearray1< Real, 4 > &  calpha,
utility::fixedsizearray1< Real, 4 > &  salpha 
)

◆ triaxialCoefficients()

void numeric::kinematic_closure::triaxialCoefficients ( const utility::fixedsizearray1< Real, 3 > &  vb,
const utility::fixedsizearray1< Real, 3 > &  xi,
const utility::fixedsizearray1< Real, 3 > &  eta,
const utility::fixedsizearray1< Real, 3 > &  delta,
const utility::fixedsizearray1< Real, 3 > &  theta,
const utility::vector1< int > &  order,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  A,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  B,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  C,
utility::fixedsizearray1< utility::fixedsizearray1< Real, 3 >, 3 > &  D,
utility::fixedsizearray1< Real, 3 > &  cal,
utility::fixedsizearray1< Real, 3 > &  sal,
int &  f 
)

◆ vectorDiff()

void numeric::kinematic_closure::vectorDiff ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B,
utility::vector1< Real > &  C 
)

◆ vectorsEqual()

bool numeric::kinematic_closure::vectorsEqual ( const utility::vector1< Real > &  A,
const utility::vector1< Real > &  B 
)

Variable Documentation

◆ MAX_ITER_SECANT

int numeric::kinematic_closure::MAX_ITER_SECANT

Referenced by initialize_sturm(), and modrf().

◆ MAXIT

int numeric::kinematic_closure::MAXIT

Referenced by initialize_sturm(), and sbisect().

◆ RELERROR

double numeric::kinematic_closure::RELERROR

Referenced by initialize_sturm(), modrf(), and sbisect().

◆ skipl

string numeric::kinematic_closure::skipl = "\n\n"