static int test_neon()
{
	const int test_round = 1000;
	const int data_len = 100000;
	std::vector<float> vec_a(data_len);
	std::vector<float> vec_b(data_len);
	std::vector<float> vec_result(data_len);
	std::vector<float> vec_result2(data_len);
	//fill random value in vecA & vecB
	std::cout << "round of test is " << test_round << std::endl;
	std::cout << "size of input vector is "<< data_len << std::endl;
	std::cout << "filling random data to input vector..." << std::endl;
	fill_random_value(vec_a);
	fill_random_value(vec_b);
	std::cout << "fill random data to input vector done.\n" << std::endl;
	//check the result is same
	{
		normal_vector_mul(vec_a, vec_b, vec_result);
		neon_vector_mul(vec_a, vec_b, vec_result2);
		if (!is_equals_vector(vec_result,vec_result2))
		{
			std::cerr << "result vector is not equals!" << std::endl;
			return -1;
		}
	}
	//test normal_vector_mul
	{
		FuncCostTimeHelper time_helper("normal_vector_mul");
		for (int i = 0; i < test_round;i++)
		{
			normal_vector_mul(vec_a, vec_b, vec_result);
		}
	}
	//test neon_vector_mul
	{
		FuncCostTimeHelper time_helper("neon_vector_mul");
		for (int i = 0; i < test_round; i++)
		{
			neon_vector_mul(vec_a, vec_b, vec_result2);
		}
	}
	return 0;
}
Beispiel #2
0
static
PyObject* from_time_kobject(K x) {
     PyDateTime_IMPORT;
     PyObject* result;
     Py_ssize_t i, length ;
     length = (Py_ssize_t)(x->n);
     int h, m, s, ms;
     
     if(scalar(x)) {
	  time_helper((int)(x->i), &h, &m, &s, &ms);
	  result = PyTime_FromTime(h, m, s, ms);
     }
     else {
	  result = PyList_New(length);
	  for(i = 0; i != length; ++i) {
	       time_helper((int)xI[i], &h, &m, &s, &ms);
	       PyList_SetItem(result, i, PyTime_FromTime(h, m, s, ms));
	  }
     }
     return result;
}