float ScalarProduct( float* a1, float* a2, int n )
{
float ans = 0.0;
register int i;
if( n >= 8 )
{
for( i = 0; i < ( n >> 3 ); ++i, a1 += 8, a2 += 8 )
ans += a1[0] * a2[0] + a1[1] * a2[1] +
a1[2] * a2[2] + a1[3] * a2[3] +
a1[4] * a2[4] + a1[5] * a2[5] +
a1[6] * a2[6] + a1[7] * a2[7];
n -= i << 3;
}
for( i = 0; i < n; ++i )
ans += a1[i] * a2[i];
return( ans );
}