#ifndef __MOREEXTRAATOMRECORD_H__ #define __MOREEXTRAATOMRECORD_H__ # include "util.h" # include "pdb.h" /* Look here for Cube, AtomList defs */ # include "fit.h" #ifdef __cplusplus extern "C" { #endif #define NUMBER_OBJECTS_LARGE_EXTRA_ATOM_RECORD 20 #define WRITE_EXTRA_ATOM_RECORD_HDR "\ # A XXX NNN || 0 1 2 3\ 4 5 6 7 8 9\n" #define SAMPLE_COL_DESCRIBE_STRING "\ @ COL_V_VAL 0 \n\ @ COL_V_AVG 1 \n\ @ COL_V_NUM 2 \n\ @ COL_V_DEV 3 \n\ @ COL_F_123 4 \n\ @ COL_F_FSV 5 \n\ @ COL_F_GXG 6 \n\ @ COL_F_ASA 7 \n\ @ COL_F_FSA 8 \n\ @ COL_F_FSD 9 \n\ " typedef struct { int ii ; double tmp ; double d[NUMBER_OBJECTS_LARGE_EXTRA_ATOM_RECORD] ; char * s[NUMBER_OBJECTS_LARGE_EXTRA_ATOM_RECORD] ; } LargeExtraAtomRecord ; void WriteLargeExtraAtomRecords (FILE * stream, file_records * f, LargeExtraAtomRecord ** E, int n, int format, char c); void AbsB(file_records * f) ; void RadiiToB(file_records * f) ; void CovVDWRadiiToOccB(file_records * f) ; void WriteExtraAtomRecords (FILE * stream, file_records * f, ExtraAtomRecord ** E, int n, int format) ; void WriteExtraAtomRecord (FILE * stream, atom_record * a, ExtraAtomRecord * e, int n, int format) ; void SubtractAtomVects_1eq2Minus3 (ExtraAtomRecord ** A0, char * A0Rx, ExtraAtomRecord ** B0, char * B0Ry, ExtraAtomRecord ** C0, char * C0Rz, int n) ; # define SUBTRACT_ATOM_VECTS_1EQ2MINUS3(A,x,B,y,C,z,n) \ SubtractAtomVects_1eq2Minus3( \ (ExtraAtomRecord **) &A[0], (char *) &A[0]->x, \ (ExtraAtomRecord **) &B[0], (char *) &B[0]->y, \ (ExtraAtomRecord **) &C[0], (char *) &C[0]->z, n) void DivideAtomVects_1eq2Div3 (ExtraAtomRecord ** A0, char * A0Rx, ExtraAtomRecord ** B0, char * B0Ry, ExtraAtomRecord ** C0, char * C0Rz, int n) ; # define DIVIDE_ATOM_VECTS_1EQ2DIV3(A,x,B,y,C,z,n) \ DivideAtomVects_1eq2Div3( \ (ExtraAtomRecord **) &A[0], (char *) &A[0]->x, \ (ExtraAtomRecord **) &B[0], (char *) &B[0]->y, \ (ExtraAtomRecord **) &C[0], (char *) &C[0]->z, n) void MultiplyAtomVects_1eq2times3 (ExtraAtomRecord ** A0, char * A0Rx, ExtraAtomRecord ** B0, char * B0Ry, ExtraAtomRecord ** C0, char * C0Rz, int n) ; # define MULTIPLY_ATOM_VECTS_1EQ2TIMES3(A,x,B,y,C,z,n) \ MultiplyAtomVects_1eq2times3( \ (ExtraAtomRecord **) &A[0], (char *) &A[0]->x, \ (ExtraAtomRecord **) &B[0], (char *) &B[0]->y, \ (ExtraAtomRecord **) &C[0], (char *) &C[0]->z, n) void ScalarToAtomVects (ExtraAtomRecord ** A0, char * A0Rx, int n, double t) ; # define SCALAR_TO_ATOM_VECTS(B,y,n,t) \ ScalarToAtomVects((ExtraAtomRecord **) &B[0], (char *) &B[0]->y, n, t) void DefaultInitExtraAtomRecordsToScalar (ExtraAtomRecord ** e, int rows, double val) ; #ifdef __cplusplus } #endif #endif /* !__MOREEXTRAATOMRECORD_H__ */