text: /*
  ======================================================================
  vecmath.c
  
  Basic vector and matrix functions.
  
  Ernie Wright  17 Sep 00
  ====================================================================== */
  
  #include <math.h>
  
  
  float dot( float a[], float b[] )
  {
     return a[ 0 ] * b[ 0 ] + a[ 1 ] * b[ 1 ] + a[ 2 ] * b[ 2 ];
  }
  
  
  void cross( float a[], float b[], float c[] )
  {
     c[ 0 ] = a[ 1 ] * b[ 2 ] - a[ 2 ] * b[ 1 ];
     c[ 1 ] = a[ 2 ] * b[ 0 ] - a[ 0 ] * b[ 2 ];
     c[ 2 ] = a[ 0 ] * b[ 1 ] - a[ 1 ] * b[ 0 ];
  }
  
  
  void normalize( float v[] )
  {
     float r;
  
     r = ( float ) sqrt( dot( v, v ));
     if ( r > 0 ) {
        v[ 0 ] /= r;
        v[ 1 ] /= r;
        v[ 2 ] /= r;
     }
  }
  