void do_test_erf(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::erf<value_type>; #else pg funcp = boost::math::erf; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test erf against data: // result = boost::math::tools::test( data, bind_func(funcp, 0), extract_result(1)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erf", test_name); #ifdef TEST_OTHER if(::boost::is_floating_point<value_type>::value){ funcp = other::erf; result = boost::math::tools::test( data, bind_func(funcp, 0), extract_result(1)); print_test_result(result, data[result.worst()], result.worst(), type_name, "other::erf"); } #endif // // test erfc against data: // #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) funcp = boost::math::erfc<value_type>; #else funcp = boost::math::erfc; #endif result = boost::math::tools::test( data, bind_func(funcp, 0), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erfc", test_name); #ifdef TEST_OTHER if(::boost::is_floating_point<value_type>::value){ funcp = other::erfc; result = boost::math::tools::test( data, bind(funcp, 0), extract_result(2)); print_test_result(result, data[result.worst()], result.worst(), type_name, "other::erfc"); } #endif std::cout << std::endl; }
void do_test_cbrt(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::cbrt<value_type>; #else pg funcp = boost::math::cbrt; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test cbrt against data: // result = boost::math::tools::test( data, bind_func(funcp, 1), extract_result(0)); result += boost::math::tools::test( data, negative_cbrt(), negate(extract_result(0))); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cbrt", test_name); std::cout << std::endl; }
void do_test_tgamma_delta_ratio(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::tgamma_delta_ratio<value_type, value_type>; #else pg funcp = boost::math::tgamma_delta_ratio; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test tgamma_delta_ratio against data: // result = boost::math::tools::test( data, bind_func(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_delta_ratio(a, delta)", test_name); result = boost::math::tools::test( data, negative_tgamma_ratio(), extract_result(3)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_delta_ratio(a -delta)", test_name); }
void do_test_cyl_bessel_j_int(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = cyl_bessel_j_int_wrapper<value_type>; #else pg funcp = cyl_bessel_j_int_wrapper; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test cyl_bessel_j against data: // result = boost::math::tools::test( data, bind_func(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_j", test_name); std::cout << std::endl; }
void do_test_hermite(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(unsigned, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::hermite<value_type>; #else pg funcp = boost::math::hermite; #endif typedef unsigned (*cast_t)(value_type); boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test hermite against data: // result = boost::math::tools::test( data, bind_func_int1(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::hermite", test_name); std::cout << std::endl; }
void do_test_erf_inv(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type); boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test erf_inv against data: // #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::erf_inv<value_type>; #else pg funcp = boost::math::erf_inv; #endif result = boost::math::tools::test( data, bind_func(funcp, 0), extract_result(1)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erf_inv", test_name); std::cout << std::endl; }
void do_test_laguerre3(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(unsigned, unsigned, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::laguerre<unsigned, value_type>; #else pg funcp = boost::math::laguerre; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test laguerre against data: // result = boost::math::tools::test( data, bind_func_int2(funcp, 0, 1, 2), extract_result(3)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::laguerre(n, m, x)", test_name); std::cout << std::endl; }
void do_test_cyl_neumann_y(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(value_type, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::cyl_neumann<value_type, value_type>; #else pg funcp = boost::math::cyl_neumann; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test cyl_neumann against data: // result = boost::math::tools::test( data, bind_func(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_neumann", test_name); std::cout << std::endl; #ifdef TEST_OTHER if(boost::is_floating_point<value_type>::value) { funcp = other::cyl_neumann; // // test other::cyl_neumann against data: // result = boost::math::tools::test( data, bind_func(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::cyl_neumann", test_name); std::cout << std::endl; } #endif }
void do_test_spherical_harmonic(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(unsigned, int, value_type, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::spherical_harmonic_r<value_type, value_type>; #else pg funcp = boost::math::spherical_harmonic_r; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test Spheric Harmonic against data: // result = boost::math::tools::test( data, bind_func_int2(funcp, 0, 1, 2, 3), extract_result(4)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_r", test_name); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) funcp = boost::math::spherical_harmonic_i<value_type, value_type>; #else funcp = boost::math::spherical_harmonic_i; #endif // // test Spheric Harmonic against data: // result = boost::math::tools::test( data, bind_func_int2(funcp, 0, 1, 2, 3), extract_result(5)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_i", test_name); std::cout << std::endl; }
// Extract the OCR results, costs (penalty points for uncertainty), // and the bounding boxes of the characters. int TessBaseAPI::TesseractExtractResult(char** string, int** lengths, float** costs, int** x0, int** y0, int** x1, int** y1, PAGE_RES* page_res) { ELIST tess_chars; ELIST_ITERATOR tess_chars_it(&tess_chars); extract_result(&tess_chars_it, page_res); tess_chars_it.move_to_first(); int n = tess_chars.length(); int string_len = 0; *lengths = new int[n]; *costs = new float[n]; *x0 = new int[n]; *y0 = new int[n]; *x1 = new int[n]; *y1 = new int[n]; int i = 0; for (tess_chars_it.mark_cycle_pt(); !tess_chars_it.cycled_list(); tess_chars_it.forward(), i++) { TESS_CHAR *tc = (TESS_CHAR *) tess_chars_it.data(); string_len += (*lengths)[i] = tc->length; (*costs)[i] = tc->cost; (*x0)[i] = tc->box.left(); (*y0)[i] = tc->box.bottom(); (*x1)[i] = tc->box.right(); (*y1)[i] = tc->box.top(); } char *p = *string = new char[string_len]; tess_chars_it.move_to_first(); for (tess_chars_it.mark_cycle_pt(); !tess_chars_it.cycled_list(); tess_chars_it.forward()) { TESS_CHAR *tc = (TESS_CHAR *) tess_chars_it.data(); strncpy(p, tc->unicode_repr, tc->length); p += tc->length; } return n; }
void do_test_ellint_e1(T& data, const char* type_name, const char* test) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; boost::math::tools::test_result<value_type> result; std::cout << "Testing: " << test << std::endl; #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) value_type (*fp1)(value_type) = boost::math::ellint_2<value_type>; #else value_type (*fp1)(value_type) = boost::math::ellint_2; #endif result = boost::math::tools::test( data, bind_func(fp1, 0), extract_result(1)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ellint_2", test); std::cout << std::endl; }
int exec_with_redirect_from_stdout(char *command_line, BOOL use_cmd_exe, char *** results) { execution_details * details = (execution_details *)palloc(sizeof(execution_details)); if (!initialize_files(details)) return FALSE; // use the current OS comspec for DOS commands, i.e., DIR char cmd[MAX_PATH] = { 0 }; prepare_command_line(cmd, command_line, use_cmd_exe); if (!execute_process(details, cmd)) return FALSE; int result_count = extract_result(details, results); close_handles(details); DeleteFile(details->temp_filename); pfree(details); return result_count; }
int main(int const argc, const char ** const argv) { if(argc < 2 ) { fprintf(stderr,"Usage : ./client <Semantics> <No of Servers>\n"); exit(EXIT_FAILURE); } const char const **serverUrl; int i = 0, port = 8080 ; xmlrpc_env env; xmlrpc_value * resultP; int nUrl = atoi(argv[2]); struct timeval start,end,diff; if(nUrl == 0) { fprintf(stderr,"Please enter non-zero number of servers\n"); exit(EXIT_FAILURE); } #if 0 serverUrl = (char **) malloc (nUrl * sizeof(char*)); for(i = 0 ; i < nUrl ; i++){ serverUrl[i] = (char *) malloc(50 * sizeof(char)); sprintf(serverUrl[i],"http://localhost:%d/RPC2",port++); } #endif #if 1 serverUrl = malloc(sizeof(char*) * 5); serverUrl[0] = "http://localhost:8080/RPC2"; serverUrl[1] = "http://localhost:8081/RPC2"; serverUrl[2] = "http://localhost:8082/RPC2"; serverUrl[3] = "http://localhost:8083/RPC2"; serverUrl[4] = "http://localhost:8084/RPC2"; #endif const char * const methodName = "calculate_modexp"; //const char * const serverUrl = "http://localhost:8080/RPC2"; /* Initialize our error-handling environment. */ xmlrpc_env_init(&env); /* Start up our XML-RPC client library. */ xmlrpc_client_init2(&env, XMLRPC_CLIENT_NO_FLAGS, NAME, VERSION, NULL, 0); dieIfFaultOccurred(&env); // printf("Making XMLRPC call to server url '%s' method '%s' " "to request the sum " "of 5 and 7...\n", serverUrl, methodName); /* Make the remote procedure call */ // printf("Result is : %d\n",xmlrpc_validate_utf8("Hello World")); xmlrpc_value *arr = xmlrpc_array_new(&env); //resultP = xmlrpc_client_call(&env, serverUrl, methodName,"(A)", generate_request_array(&env , arr) ); gettimeofday(&start,NULL); /*Call the server*/ resultP = xmlrpc_client_call_multi_sync(atoi(argv[1]),nUrl, &env, serverUrl, methodName,"(A)", generate_request_array(&env , arr)); gettimeofday(&end,NULL); difference(&diff,end,start); printf("Time Taken With %d Server = %ld:%ld\n",nUrl,diff.tv_usec/1000000,diff.tv_usec%1000000); // printf("Check to see if killed\n"); dieIfFaultOccurred(&env); /* Get our sum and print it out. */ //xmlrpc_read_int(&env, resultP, &primeResult); // xmlrpc_env * const dummy; // printf("Extracting Results\n"); const char* result = extract_result ( &env , resultP); dieIfFaultOccurred(&env); // printf("2^p/m = %s\n", result); /*Dispose of our result value. */ xmlrpc_DECREF(resultP); /* Clean up our error-handling environment. */ xmlrpc_env_clean(&env); /* Shutdown our XML-RPC client library. */ xmlrpc_client_cleanup(); return 0; }
void do_test_legendre_p(const T& data, const char* type_name, const char* test_name) { typedef typename T::value_type row_type; typedef typename row_type::value_type value_type; typedef value_type (*pg)(int, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg funcp = boost::math::legendre_p<value_type>; #else pg funcp = boost::math::legendre_p; #endif boost::math::tools::test_result<value_type> result; std::cout << "Testing " << test_name << " with type " << type_name << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; // // test legendre_p against data: // result = boost::math::tools::test( data, bind_func_int1(funcp, 0, 1), extract_result(2)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_p", test_name); #ifdef TEST_OTHER if(::boost::is_floating_point<value_type>::value){ funcp = other::legendre_p; result = boost::math::tools::test( data, bind_func_int1(funcp, 0, 1), extract_result(2)); print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_p"); } #endif typedef value_type (*pg2)(unsigned, value_type); #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS) pg2 funcp2 = boost::math::legendre_q<value_type>; #else pg2 funcp2 = boost::math::legendre_q; #endif // // test legendre_q against data: // result = boost::math::tools::test( data, bind_func_int1(funcp2, 0, 1), extract_result(3)); handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_q", test_name); #ifdef TEST_OTHER if(::boost::is_floating_point<value_type>::value){ funcp = other::legendre_q; result = boost::math::tools::test( data, bind_func_int1(funcp2, 0, 1), extract_result(3)); print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_q"); } #endif std::cout << std::endl; }