C-Free 5.0, mingw5
/* vec.c - 2019-10-09 build 3*/
#include<stdio.h>
void v_sho(double* vector0, int length)
{
int i;
printf("\nans=\n");
for(i=0;i<length;i++)
{
printf("%f ",vector0[i]);
}
printf("\n\n");
}
void v_dot(double* vector0, double* vector1, int length)
{
int i;
for(i=0;i<length;i++)
{
vector0[i] = vector0[i] * vector1[i];
}
return;
}
void v_sca(double* vector, double coeff, int length)
{
int i;
for(i=0;i<length;i++)
{
vector[i] = vector[i] * coeff;
}
return;
}
void v_sub(double* vector0, double* vector1, int length)
{
int i;
for(i=0;i<length;i++)
{
vector0[i] = vector0[i] - vector1[i];
}
return;
}
void v_add(double* vector0, double* vector1, int length)
{
int i;
for(i=0;i<length;i++)
{
vector0[i] = vector0[i] + vector1[i];
}
return;
}
double sigma(double* vector, int length)
{
int i;
double sum = 0;
double ret = 0;
for(i=0;i<length;i++)
{
sum = sum + vector[i];
}
ret = sum;
return ret;
}
double mean(double* vector, int length)
{
double sum = 0;
double ret = 0;
sum = sigma(vector,length);
ret = sum / length;
return ret;
}
double max(double* vector, int length)
{
int i;
double ret;
ret = vector[0];
for(i=0;i<length;i++)
{
if(ret<vector[i])
ret = vector[i];
}
return ret;
}
double min(double* vector, int length)
{
int i;
double ret;
ret = vector[0];
for(i=0;i<length;i++)
{
if(ret>vector[i])
ret = vector[i];
}
return ret;
}
double rms(double* vector, int length)
{
int i;
double pow;
double sum = 0;
double ret = 0;
for(i=0;i<length;i++)
{
pow = vector[i] * vector[i] / length;
sum = sum + pow;
}
ret = sqrt(sum);
return ret;
}
int main()
{
double vector[16] = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
printf("sigma=%f\n",sigma(vector,16));
printf("mean=%f\n",mean(vector,16));
printf("max=%f\n",max(vector,16));
printf("min=%f\n",min(vector,16));
printf("rms=%f\n",rms(vector,16));
v_sca(vector,5,16);
v_sho(vector,16);
printf("sigma=%f\n",sigma(vector,16));
v_add(vector,vector,16);
v_sho(vector,16);
printf("sigma=%f\n",sigma(vector,16));
v_sub(vector,vector,16);
v_sho(vector,16);
printf("sigma=%f\n",sigma(vector,16));
return 0;
}