PIPS
ddot_ur.c
Go to the documentation of this file.
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include "tools.h"
4 
5 void ddot_ur(int n,float dx[n], float dy[n], float* r)
6 {
7  int i,m;
8  float dtemp=0;
9  m = n % 5;
10  if (m != 0)
11  {
12  for (i = 0; i < m; i++)
13  dtemp = dtemp + dx[i]*dy[i];
14  if (n < 5)
15  {
16  *r=dtemp;
17  return;
18  }
19  }
20  for (i = m; i < n; i = i + 5)
21  {
22  dtemp = dtemp + (dx[i]*dy[i] +
23  dx[i+1]*dy[i+1] + dx[i+2]*dy[i+2] +
24  dx[i+3]*dy[i+3] + dx[i+4]*dy[i+4]);
25  }
26 
27  *r = dtemp;
28 }
29 
30 int main(int argc, char ** argv)
31 {
32  int i,n;
33  float a, *b, *c;
34  if (argc < 3)
35  {
36  fprintf(stderr, "Usage: %s size data_file\n", argv[0]);
37  return 1;
38  }
39  n = atoi(argv[1]);
40  b = (float*) malloc(n * sizeof(float));
41  c = (float*) malloc(n * sizeof(float));
42  init_data_file(argv[2]);
43  init_data_float(b,n);
44  init_data_float(c,n);
46  ddot_ur(n,b, c, &a);
47  printf("%f\n",a);
48  free(b);
49  free(c);
50 }
51 
int main(int argc, char **argv)
Definition: ddot_ur.c:30
void ddot_ur(int n, float dx[n], float dy[n], float *r)
Definition: ddot_ur.c:5
void * malloc(YYSIZE_T)
void free(void *)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
int printf()
void close_data_file()
Definition: tools.c:48
int init_data_float(float *ptr, const unsigned int n)
Definition: tools.c:125
void init_data_file(const char *data_file)
Definition: tools.c:36