# Functions in util.c

The following functions are provided to support 3D vector operations in the (x, y, z) Cartesian system. All vectors are
of length of 3, and store the x, y, and z coordinates.

Prototype:     void    VTXadd(double *Buff1, double *Buff2, double *Buff)
Description:    To add vector Buff1 and Buff2, put result to vector Buff
Input value:
• double *Buff1, *Buff2, *Buff --- three vectors.
Return value: none

Prototype:    void    VTXadd2(double *Buff1, double *Buff2, double *Buff3, double *Buff )
Description:     To add vector Buff1,Buff2 and Buff3, put result to vector Buff
Input value:
• double *Buff1, *Buff2, *Buff3, *Buff  ---- four vectors
Return value:     none

### VTXcross( )

Prototype:    void    VTXcross(double *Buff1, double *Buff2, double *Buff)
Description:     To get the cross product of vector Buff1 and Buff2, store the results in vector Buff If Buff1=(x1, y1, z1),         Buff2=(x2, y2, z2), Buff= (y1z2-y2z1, z1x2-z2x1, x1y2-x2y1)
Input value:
• double *Buff1, *Buff2, *Buff ---three vectors
Return value:     none

### VTXcross1( )

Prototype:    void    VTXcross1(int j, int k, double Buff[][3], double *Buff1)
Description:    To get the cross product of two vectors Buff[j] and Buff[k], store the results in Buff1.
Input value:
• int j, k --- row index of the two vectors
• double **Buff --- a vector array. Buff[i] & Buff[j] are two vectors
• double *Buff1 --- where to store the results.
Return value:     none

### VTXdot( )

Prototype:    double    VTXdot( double *Buff1, double *Buff2)
Description:     To get the dot product of two vectors Buff1 and Buff2.
Input value:     double *Buff1, * Buff2 --- two vectors
Return value:     If Buff1=(x1,y1, z1), Buff2=(x2, y2, z2), return (x1x2+y1y2+z1z2)

### VTXmag( )

Prototype:     double    VTXmag(double *Buff1, double *Buff2)
Description:    To  return the Euclid distance between two vectors.
Input value:
• double *Buff1, *Buff2 --- two vectors
Return value:     If Buff1=(x1,y1, z1), Buff2=(x2, y2, z2), return sqrt( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 ).

### VTXsub( )

Prototype:    void    VTXsub( double *Buff1, double *Buff2, double *Buff)
Description:     To subtract vector Buff2 from vector Buff1, put the results in vector Buff
Input value:
• double *Buff, *Buff1, *Buff2 --- three vectors.
Return value:    none