Browse Source

cmath2.c, whitespace cleanup

pre-master-46
h_vogt 10 years ago
committed by rlar
parent
commit
594db31ebc
  1. 290
      src/maths/cmaths/cmath2.c

290
src/maths/cmaths/cmath2.c

@ -30,15 +30,15 @@ cx_max_local(void *data, short int type, int length)
double largest = 0.0;
if (type == VF_COMPLEX) {
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
for (i = 0; i < length; i++)
if (largest < cmag(cc[i]))
largest = cmag(cc[i]);
} else {
double *dd = (double *) data;
int i;
double *dd = (double *) data;
int i;
for (i = 0; i < length; i++)
if (largest < FTEcabs(dd[i]))
@ -47,6 +47,7 @@ cx_max_local(void *data, short int type, int length)
return largest;
}
/* Normalize the data so that the magnitude of the greatest value is 1. */
void *
@ -56,15 +57,15 @@ cx_norm(void *data, short int type, int length, int *newlength, short int *newty
largest = cx_max_local(data, type, length);
if (largest == 0.0) {
fprintf(cp_err, "Error: can't normalize a 0 vector\n");
return (NULL);
fprintf(cp_err, "Error: can't normalize a 0 vector\n");
return (NULL);
}
*newlength = length;
if (type == VF_COMPLEX) {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
@ -75,9 +76,9 @@ cx_norm(void *data, short int type, int length, int *newlength, short int *newty
}
return ((void *) c);
} else {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
@ -88,14 +89,15 @@ cx_norm(void *data, short int type, int length, int *newlength, short int *newty
}
}
void *
cx_uminus(void *data, short int type, int length, int *newlength, short int *newtype)
{
*newlength = length;
if (type == VF_COMPLEX) {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
@ -105,9 +107,9 @@ cx_uminus(void *data, short int type, int length, int *newlength, short int *new
}
return ((void *) c);
} else {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
@ -124,6 +126,7 @@ cx_uminus(void *data, short int type, int length, int *newlength, short int *new
* data out: random integers in interval [0, data[i][
* standard library function rand() is used
*/
void *
cx_rnd(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -160,9 +163,11 @@ cx_rnd(void *data, short int type, int length, int *newlength, short int *newtyp
}
}
/* random numbers drawn from a uniform distribution
* data out: random numbers in interval [-1, 1[
*/
void *
cx_sunif(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -194,11 +199,13 @@ cx_sunif(void *data, short int type, int length, int *newlength, short int *newt
}
}
/* random numbers drawn from a poisson distribution
* data in: lambda
* data out: random integers according to poisson distribution,
* with lambda given by each vector element
*/
void *
cx_poisson(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -230,11 +237,13 @@ cx_poisson(void *data, short int type, int length, int *newlength, short int *ne
}
}
/* random numbers drawn from an exponential distribution
* data in: Mean values
* data out: exponentially distributed random numbers,
* with mean given by each vector element
*/
void *
cx_exponential(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -266,9 +275,11 @@ cx_exponential(void *data, short int type, int length, int *newlength, short int
}
}
/* random numbers drawn from a Gaussian distribution
/* random numbers drawn from a Gaussian distribution
mean 0, std dev 1
*/
void *
cx_sgauss(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -301,12 +312,10 @@ cx_sgauss(void *data, short int type, int length, int *newlength, short int *new
}
/* Compute the avg of a vector.
* Created by A.M.Roldan 2005-05-21
*/
void *
cx_avg(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -344,7 +353,7 @@ cx_avg(void *data, short int type, int length, int *newlength, short int *newtyp
imagpart(c[i]) = sum_imag / (double)(i+1);
}
return ((void *) c);
return ((void *) c);
}
}
@ -358,9 +367,9 @@ cx_mean(void *data, short int type, int length, int *newlength, short int *newty
*newlength = 1;
rcheck(length > 0, "mean");
if (type == VF_REAL) {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(1);
*newtype = VF_REAL;
@ -369,9 +378,9 @@ cx_mean(void *data, short int type, int length, int *newlength, short int *newty
*d /= length;
return ((void *) d);
} else {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(1);
*newtype = VF_COMPLEX;
@ -401,11 +410,11 @@ cx_length(void *data, short int type, int length, int *newlength, short int *new
return ((void *) d);
}
/* Return a vector from 0 to the magnitude of the argument. Length of the
* argument is irrelevent.
*/
void *
cx_vector(void *data, short int type, int length, int *newlength, short int *newtype)
{
@ -430,8 +439,8 @@ cx_vector(void *data, short int type, int length, int *newlength, short int *new
return ((void *) d);
}
/* Create a vector of the given length composed of all ones. */
/* Create a vector of the given length composed of all ones. */
void *
cx_unitvec(void *data, short int type, int length, int *newlength, short int *newtype)
@ -457,6 +466,7 @@ cx_unitvec(void *data, short int type, int length, int *newlength, short int *ne
return ((void *) d);
}
/* Calling methods for these functions are:
* cx_something(data1, data2, datatype1, datatype2, length)
*
@ -503,6 +513,7 @@ cx_plus(void *data1, void *data2, short int datatype1, short int datatype2, int
}
}
void *
cx_minus(void *data1, void *data2, short int datatype1, short int datatype2, int length)
{
@ -541,6 +552,7 @@ cx_minus(void *data1, void *data2, short int datatype1, short int datatype2, int
}
}
void *
cx_times(void *data1, void *data2, short int datatype1, short int datatype2, int length)
{
@ -581,6 +593,7 @@ cx_times(void *data1, void *data2, short int datatype1, short int datatype2, int
}
}
void *
cx_mod(void *data1, void *data2, short int datatype1, short int datatype2, int length)
{
@ -645,41 +658,43 @@ cx_max(void *data, short int type, int length, int *newlength, short int *newtyp
/* test if length >0 et affiche un message d'erreur */
rcheck(length > 0, "mean");
if (type == VF_REAL) {
double largest=0.0;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(1);
*newtype = VF_REAL;
largest=dd[0];
for (i = 1; i < length; i++)
if (largest < dd[i])
largest = dd[i];
*d=largest;
return ((void *) d);
} else {
double largest_real=0.0;
double largest_complex=0.0;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(1);
*newtype = VF_COMPLEX;
largest_real=realpart(*cc);
largest_complex=imagpart(*cc);
for (i = 0; i < length; i++) {
if (largest_real < realpart(cc[i]))
largest_real = realpart(cc[i]);
if (largest_complex < imagpart(cc[i]))
largest_complex = imagpart(cc[i]);
double largest=0.0;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(1);
*newtype = VF_REAL;
largest = dd[0];
for (i = 1; i < length; i++)
if (largest < dd[i])
largest = dd[i];
*d = largest;
return ((void *) d);
} else {
double largest_real=0.0;
double largest_complex=0.0;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(1);
*newtype = VF_COMPLEX;
largest_real = realpart(*cc);
largest_complex = imagpart(*cc);
for (i = 0; i < length; i++) {
if (largest_real < realpart(cc[i]))
largest_real = realpart(cc[i]);
if (largest_complex < imagpart(cc[i]))
largest_complex = imagpart(cc[i]);
}
realpart(*c) = largest_real;
imagpart(*c) = largest_complex;
return ((void *) c);
}
}
/* Routoure JM : Compute the min of a vector. */
void *
@ -689,35 +704,35 @@ cx_min(void *data, short int type, int length, int *newlength, short int *newtyp
/* test if length >0 et affiche un message d'erreur */
rcheck(length > 0, "mean");
if (type == VF_REAL) {
double smallest;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(1);
*newtype = VF_REAL;
smallest=dd[0];
for (i = 1; i < length; i++)
if (smallest > dd[i])
smallest = dd[i];
*d=smallest;
return ((void *) d);
} else {
double smallest_real;
double smallest_complex;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(1);
*newtype = VF_COMPLEX;
smallest_real=realpart(*cc);
smallest_complex=imagpart(*cc);
for (i = 1; i < length; i++) {
if (smallest_real > realpart(cc[i]))
smallest_real = realpart(cc[i]);
if (smallest_complex > imagpart(cc[i]))
smallest_complex = imagpart(cc[i]);
double smallest;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(1);
*newtype = VF_REAL;
smallest = dd[0];
for (i = 1; i < length; i++)
if (smallest > dd[i])
smallest = dd[i];
*d = smallest;
return ((void *) d);
} else {
double smallest_real;
double smallest_complex;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(1);
*newtype = VF_COMPLEX;
smallest_real = realpart(*cc);
smallest_complex = imagpart(*cc);
for (i = 1; i < length; i++) {
if (smallest_real > realpart(cc[i]))
smallest_real = realpart(cc[i]);
if (smallest_complex > imagpart(cc[i]))
smallest_complex = imagpart(cc[i]);
}
realpart(*c) = smallest_real;
imagpart(*c) = smallest_complex;
@ -735,49 +750,50 @@ cx_d(void *data, short int type, int length, int *newlength, short int *newtype)
/* test if length >0 et affiche un message d'erreur */
rcheck(length > 0, "deriv");
if (type == VF_REAL) {
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
d[0]=dd[1]-dd[0];
d[length-1]=dd[length-1]-dd[length-2];
for (i = 1; i < length-1; i++)
d[i]=dd[i+1]-dd[i-1];
return ((void *) d);
} else {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
realpart(*c)=realpart(cc[1])-realpart(cc[0]);
imagpart(*c)=imagpart(cc[1])-imagpart(cc[0]);
realpart(c[length-1])=realpart(cc[length-1])-realpart(cc[length-2]);
imagpart(c[length-1])=imagpart(cc[length-1])-imagpart(cc[length-2]);
for (i = 1; i < length - 1; i++) {
realpart(c[i])=realpart(cc[i+1])-realpart(cc[i-1]);
imagpart(c[i])=imagpart(cc[i+1])-imagpart(cc[i-1]);
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
d[0] = dd[1] - dd[0];
d[length-1] = dd[length-1] - dd[length-2];
for (i = 1; i < length - 1; i++)
d[i] = dd[i+1] - dd[i-1];
return ((void *) d);
} else {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
realpart(*c) = realpart(cc[1]) - realpart(cc[0]);
imagpart(*c) = imagpart(cc[1]) - imagpart(cc[0]);
realpart(c[length-1]) = realpart(cc[length-1]) - realpart(cc[length-2]);
imagpart(c[length-1]) = imagpart(cc[length-1]) - imagpart(cc[length-2]);
for (i = 1; i < length - 1; i++) {
realpart(c[i]) = realpart(cc[i+1]) - realpart(cc[i-1]);
imagpart(c[i]) = imagpart(cc[i+1]) - imagpart(cc[i-1]);
}
return ((void *) c);
}
}
void *
cx_floor(void *data, short int type, int length, int *newlength, short int *newtype)
{
*newlength = length;
if (type == VF_COMPLEX) {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
@ -787,9 +803,9 @@ cx_floor(void *data, short int type, int length, int *newlength, short int *newt
}
return ((void *) c);
} else {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
@ -799,14 +815,15 @@ cx_floor(void *data, short int type, int length, int *newlength, short int *newt
}
}
void *
cx_ceil(void *data, short int type, int length, int *newlength, short int *newtype)
{
*newlength = length;
if (type == VF_COMPLEX) {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
@ -816,9 +833,9 @@ cx_ceil(void *data, short int type, int length, int *newlength, short int *newty
}
return ((void *) c);
} else {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;
@ -828,14 +845,15 @@ cx_ceil(void *data, short int type, int length, int *newlength, short int *newty
}
}
void *
cx_nint(void *data, short int type, int length, int *newlength, short int *newtype)
{
*newlength = length;
if (type == VF_COMPLEX) {
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
ngcomplex_t *c;
ngcomplex_t *cc = (ngcomplex_t *) data;
int i;
c = alloc_c(length);
*newtype = VF_COMPLEX;
@ -845,9 +863,9 @@ cx_nint(void *data, short int type, int length, int *newlength, short int *newty
}
return ((void *) c);
} else {
double *d;
double *dd = (double *) data;
int i;
double *d;
double *dd = (double *) data;
int i;
d = alloc_d(length);
*newtype = VF_REAL;

Loading…
Cancel
Save