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; }
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; }