/* This software was developed by Bruce Hendrickson and Robert Leland *
* at Sandia National Laboratories under US Department of Energy *
* contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
/* Normalizes a double n-vector over range. */
double normalize(vec, beg, end)
double *vec;
int beg, end;
{
int i;
double scale;
double norm();
scale = norm(vec, beg, end);
vec = vec + beg;
for (i = end - beg + 1; i; i--) {
*vec = *vec / scale;
vec++;
}
return (scale);
}
/* Normalizes such that element k is positive */
double sign_normalize(vec, beg, end, k)
double *vec;
int beg, end, k;
{
int i;
double scale, scale2;
double norm();
scale = norm(vec, beg, end);
if (vec[k] < 0) {
scale2 = -scale;
}
else {
scale2 = scale;
}
vec = vec + beg;
for (i = end - beg + 1; i; i--) {
*vec = *vec / scale2;
vec++;
}
return (scale);
}
/* Normalizes a float n-vector over range. */
double normalize_float(vec, beg, end)
float *vec;
int beg, end;
{
int i;
float scale;
double norm_float();
scale = norm_float(vec, beg, end);
vec = vec + beg;
for (i = end - beg + 1; i; i--) {
*vec = *vec / scale;
vec++;
}
return ((double) scale);
}
syntax highlighted by Code2HTML, v. 0.9.1