libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/BioTools/Translators/Protein/mathfcts.h
00001 #define EPS6 0.000001
00002 #define FUZZ 0.00001
00003 #define ABS(x)       (((x) >= 0.0) ? (x) : -(x))
00004 #define MIN(x,y)     (((x) < (y)) ? (x) : (y))
00005 #define MAX(x,y)     (((x) > (y)) ? (x) : (y))
00006 #define SQR(x)       ((x)*(x))
00007 #define EQ(x,y)      (ABS((x)-(y)) < FUZZ)
00008 
00009 typedef double matrix4[4][4];
00010 typedef double vector4[4];
00011 
00012 /**********************************************************************/
00013 
00014 extern void vectCopy(double *src, double *dest);
00015 extern void vectAdd(double *a, double *b, double *c);
00016 extern void vectSub(double *a, double *b, double *c);
00017 extern double vectNorm(double *v);
00018 extern void vectNormalize(double *src, double *dest);
00019 extern void vectXprod(double *a, double *b, double *c);
00020 extern void normalized_vectXprod(double *a, double *b, double *c);
00021 extern double vectDotProd(double *a, double *b);
00022 extern int same_sign_vect(double *v1, double *v2);
00023 extern void vectScale(double *src, double *dest, double k);
00024 
00025 extern void mat4vec3MultPos(matrix4 a, double *v, vector4 c);
00026 extern void mat4Mult(matrix4 a, matrix4 b, matrix4 c);
00027 extern void matMultXform(matrix4 a, matrix4 b, matrix4 c);
00028 extern void mat4Copy(matrix4 source, matrix4 dest);
00029 
00030 extern void inverse_transf(matrix4 M, matrix4 inv);
00031 extern void transf_rotz(double q, matrix4 T);
00032 extern void inv_transf_rotz(double q, matrix4 T);
00033 
00034 extern void mat4Rot(matrix4 M, double *axe, double t);
00035 extern void vectDeltaRot(double *axe, double * t, double *axe1, double *axe2);
00036 extern void mat4DeltaRot(matrix4 M, double *axe1, double t1, double *axe2, double t2);
00037 extern void mat4ExtractPosReverseOrder(matrix4 M, 
00038                                        double * Tx, double * Ty, double * Tz, 
00039                                        double * Rx, double * Ry, double * Rz);
00040 
00041 extern double compute_dihedang(double *nJa, double *tJa, double *pJa);
00042 extern void compute_frame(double *opos, double *xaxis, double *zaxis, matrix4 T);
00043 extern void compute_dihedang_and_frame(double *a1pos, double *a2pos,double *a3pos, double *a4pos,
00044                                        double *dihedang, matrix4 T);
00045 extern void compute_distance(double *P1, double *P2, double *dist);
00046 
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines