예제 #1
0
파일: vector.c 프로젝트: axiak/speakers
int main(int argc, char ** argv)
{
  Vector * vector_a = Vector_create(1024);

  for (int i = 0; i < vector_a->length; ++i) {
    vector_a->data[i][0] = i;
    vector_a->data[i][1] = i;
  }

  Vector * vector_b = Vector_create(1024);
  Vector * vector_c = Vector_create(1024);

  for (int i = 0; i < vector_b->length; ++i) {
    vector_b->data[i][0] = i + 1;
  }


  struct timeval stop, start;
  gettimeofday(&start, NULL);
  for (int i = 0; i < 100000; ++i) {
    Vector_multiply_real(vector_c, vector_a, vector_b);
  }
  gettimeofday(&stop, NULL);
  printf("took %lu\n", stop.tv_usec - start.tv_usec);

  Vector * vector_d = Vector_create(2);
  Vector * vector_e = Vector_create(2);
  float d_data[] = {1, 1, 2, 2};
  float e_data[] = {3, -1, 1, 1};

  for (int i = 0; i < 4; ++i) {
      vector_d->data[i / 2][i % 2] = d_data[i];
      vector_e->data[i / 2][i % 2] = e_data[i];
  }

  Vector_print(vector_d);
  Vector_print(vector_e);

  Vector_multiply(vector_d, vector_d, vector_e);

  Vector_print(vector_d);


  Vector_destroy(vector_a);
  Vector_destroy(vector_b);
  Vector_destroy(vector_c);
  Vector_destroy(vector_d);
  Vector_destroy(vector_e);

}
예제 #2
0
파일: vector.c 프로젝트: axiak/speakers
Vector * Vector_create(int length)
{
    Vector * vector = (Vector *)malloc(sizeof(Vector));
    if (!vector) {
        return NULL;
    }
    FFTW_COMPLEX * data = (FFTW_COMPLEX*)FFTW_MALLOC(sizeof(FFTW_COMPLEX) * length);
    if (!data) {
        Vector_destroy(vector);
        return NULL;
    }
    vector->data = data;
    vector->length = length;
    return vector;
}
예제 #3
0
// Test your vector here
int main() { 
	Vector* temp = Vector_create(); //create a vector
	
	Vector_append( temp, "a");//1
	Vector_append( temp, "b");//2
	Vector_append( temp, "c");//3
	Vector_append( temp, "d");//4
	Vector_append( temp, NULL);//5
	Vector_append( temp, "f");//6
	Vector_append( temp, "g");//7
	Vector_append( temp, NULL);//8
	Vector_append( temp, "");//9
	Vector_append( temp, "h");//10
	Vector_append( temp, "i");//11
	Vector_append( temp, NULL);//12
	
	Vector_resize( temp, 20 );
	
	if( Vector_size(temp) != 20 || strcmp( Vector_get( temp, 10 ), "i" ) || Vector_get( temp, 15 ) != NULL )
		perror( "something wrong.\n");
	
	//done for append, resize, get, size
	
	Vector_set( temp, 19, "caibi" );
	Vector_insert( temp, 20, "niubi" );
	Vector_insert( temp, 30, "wori" );
	
	if( Vector_size(temp) != 31 || strcmp( Vector_get( temp, 19 ), "caibi" ) || strcmp( Vector_get( temp, 20 ), "niubi" ) ||  Vector_get( temp, 15 ) != NULL || strcmp( Vector_get( temp, 30 ), "wori" ) )
		perror( "something wrong.\n");
	
	Vector_delete( temp, 11 );
	Vector_delete( temp, 27 );
	Vector_delete( temp, 1 );
	Vector_delete( temp, 18 );
	
	if( Vector_size(temp) != 27 || strcmp( Vector_get( temp, 4 ), "f" ) || strcmp( Vector_get( temp, 26 ), "wori") || Vector_get( temp, 18 ) !=NULL || strcmp( Vector_get( temp, 17 ), "caibi") )
		perror( "something wrong.\n");
	
	
	Vector_destroy( temp );

	return 0; 
}