parameters: (a1, a2, a3)
return_statement: return math.acos(costheta)
docstring: Computes the angle (in rad.) between three sets of coordinates.
docstring_summary: Computes the angle (in rad.) between three sets of coordinates.
docstring_tokens: Computes the angle ( in rad . ) between three sets of coordinates .
function: def a(a1, a2, a3):
          """Computes the angle (in rad.) between three sets of coordinates."""
          if len(a1) != 3 or len(a2) != 3 or len(a3) != 3:
              raise ValidationError('ERROR: a() only defined for Vector3\n')
          eBA = sub(a2, a1)
          eBC = sub(a2, a3)
          eBA = normalize(eBA)
          eBC = normalize(eBC)
          costheta = dot(eBA, eBC)
  
          if costheta > 1.0 - 1.0E-14:
              costheta = 1.0
          if costheta < 1.0E-14 - 1.0:
              costheta = -1.0
          return math.acos(costheta)
function_tokens: def a ( a1 , a2 , a3 ) : if len ( a1 ) != 3 or len ( a2 ) != 3 or len ( a3 ) != 3 : raise ValidationError ( 'ERROR: a() only defined for Vector3\n' ) eBA = sub ( a2 , a1 ) eBC = sub ( a2 , a3 ) eBA = normalize ( eBA ) eBC = normalize ( eBC ) costheta = dot ( eBA , eBC ) if costheta > 1.0 - 1.0E-14 : costheta = 1.0 if costheta < 1.0E-14 - 1.0 : costheta = - 1.0 return math . acos ( costheta )