Example #1
0
int compare_toc(toc_smart_ptr& pattern, info_base* base_ptr)
{
   char pattern_buf[LARGE_BUFSIZ];
   ostringstream pattern_out(pattern_buf, LARGE_BUFSIZ, ios::out);
   print_toc(pattern, pattern_out);

   toc_smart_ptr x(base_ptr, pattern.toc_node_oid());
   char db_buf[LARGE_BUFSIZ];
   ostringstream db_out(db_buf, LARGE_BUFSIZ, ios::out);
   print_toc(x, db_out);

   return compare_stream(pattern_out, db_out);
}
Example #2
0
int 
toc_test(info_lib* infolib_ptr, const char* base_name, const char* node_id_str )
{
   oid_t id((char*)node_id_str, true, false);
   toc_smart_ptr x( infolib_ptr, base_name, id );
   print_toc(x, cerr);
   return 0;
}
Example #3
0
int main(int argc, char **argv)
{

	int rc;
	char *dev_path;
	size_t block_size;
	char *endptr;
	aoff64_t block_offset = 0;
	aoff64_t block_count = 1;
	aoff64_t dev_nblocks;
	bool toc = false;
	
	if (argc < 2) {
		printf(NAME ": Error, argument missing.\n");
		syntax_print();
		return 1;
	}

	--argc; ++argv;

	if (str_cmp(*argv, "--toc") == 0) {
		--argc; ++argv;
		toc = true;
		goto devname;
	}

	if (str_cmp(*argv, "--relative") == 0) {
		--argc; ++argv;
		relative = true;
	}
	
	if (str_cmp(*argv, "--offset") == 0) {
		--argc; ++argv;
		if (*argv == NULL) {
			printf(NAME ": Error, argument missing (offset).\n");
			syntax_print();
			return 1;
		}

		block_offset = strtol(*argv, &endptr, 10);
		if (*endptr != '\0') {
			printf(NAME ": Error, invalid argument (offset).\n");
			syntax_print();
			return 1;
		}

		--argc; ++argv;
	}
	
	if (str_cmp(*argv, "--count") == 0) {
		--argc; ++argv;
		if (*argv == NULL) {
			printf(NAME ": Error, argument missing (count).\n");
			syntax_print();
			return 1;
		}

		block_count = strtol(*argv, &endptr, 10);
		if (*endptr != '\0') {
			printf(NAME ": Error, invalid argument (count).\n");
			syntax_print();
			return 1;
		}

		--argc; ++argv;
	}

devname:
	if (argc != 1) {
		printf(NAME ": Error, unexpected argument.\n");
		syntax_print();
		return 1;
	}

	dev_path = *argv;

	rc = loc_service_get_id(dev_path, &service_id, 0);
	if (rc != EOK) {
		printf(NAME ": Error resolving device `%s'.\n", dev_path);
		return 2;
	}

	rc = block_init(service_id, 2048);
	if (rc != EOK)  {
		printf(NAME ": Error initializing libblock.\n");
		return 2;
	}

	rc = block_get_bsize(service_id, &block_size);
	if (rc != EOK) {
		printf(NAME ": Error determining device block size.\n");
		return 2;
	}

	rc = block_get_nblocks(service_id, &dev_nblocks);
	if (rc != EOK) {
		printf(NAME ": Warning, failed to obtain block device size.\n");
	}

	printf("Device %s has %" PRIuOFF64 " blocks, %" PRIuOFF64 " bytes each\n", dev_path, dev_nblocks, (aoff64_t) block_size);

	if (toc)
		rc = print_toc();
	else
		rc = print_blocks(block_offset, block_count, block_size);

	block_fini(service_id);

	return rc;
}
Example #4
0
int main(int argc, char *argv[])
{
    if (!parseArgs(the_args, &argc, argv)
        || argc < 2 || show_help) {
        printUsage(argv[0], "DOCUMENT", the_args);
        exit(1);
    }

    if (show_text[0]) {
        if (!memcmp(show_text, "physical", 9)) {
            show_text_layout = poppler::page::physical_layout;
        } else if (!memcmp(show_text, "raw", 4)) {
            show_text_layout = poppler::page::raw_order_layout;
        } else {
            error(std::string("unrecognized text mode: '") + show_text + "'");
        }
    }

    std::string file_name(argv[1]);

    std::auto_ptr<poppler::document> doc(poppler::document::load_from_file(file_name));
    if (!doc.get()) {
        error("loading error");
    }
    if (doc->is_locked()) {
        error("encrypted document");
    }

    std::cout.setf(std::ios_base::boolalpha);

    if (show_all) {
        show_info = true;
        show_perm = true;
        show_metadata = true;
        show_toc = true;
        show_fonts = true;
        show_embedded_files = true;
        show_pages = true;
    }

    if (show_info) {
        print_info(doc.get());
    }
    if (show_perm) {
        print_perm(doc.get());
    }
    if (show_metadata) {
        print_metadata(doc.get());
    }
    if (show_toc) {
        std::auto_ptr<poppler::toc> doctoc(doc->create_toc());
        print_toc(doctoc.get());
    }
    if (show_fonts) {
        print_fonts(doc.get());
    }
    if (show_embedded_files) {
        print_embedded_files(doc.get());
    }
    if (show_pages) {
        const int pages = doc->pages();
        for (int i = 0; i < pages; ++i) {
            std::cout << "Page " << (i + 1) << "/" << pages << ":" << std::endl;
            std::auto_ptr<poppler::page> p(doc->create_page(i));
            print_page(p.get());
        }
    }
    if (show_text[0]) {
        const int pages = doc->pages();
        for (int i = 0; i < pages; ++i) {
            std::cout << "Page " << (i + 1) << "/" << pages << ":" << std::endl;
            std::auto_ptr<poppler::page> p(doc->create_page(i));
            print_page_text(p.get());
        }
    }

    return 0;
}
Example #5
0
bool estimation_init(float param[], float husbands_2[][HUSBANDS_COL], float husbands_3[][HUSBANDS_COL], float husbands_4[][HUSBANDS_COL], float husbands_5[][HUSBANDS_COL],
        float wives[][WIVES_COL], float wage_moments[][WAGE_MOM_COL], float marr_fer_moments[][MARR_MOM_COL], float emp_moments[][EMP_MOM_COL], float general_moments[][GEN_MOM_COL], 
        float* epsilon_b_arr, float* epsilon_f_arr, float* h_draws_b_arr, float* w_draws_b_arr, uint16_t* w_ability_draw_arr, float* h_draws_arr, float* w_draws_arr)
{
    timeval tv = tic();
    std::cout << "Loading files..." << std::endl;
    if (!load<HUSBANDS_COL>("husbands_2.out", husbands_2, HUSBANDS_ROWS))
    {
        return false;
    }
    if (!load<HUSBANDS_COL>("husbands.out", husbands_3, HUSBANDS_ROWS))
    {
        return false;
    }
    if (!load<HUSBANDS_COL>("husbands_4.out", husbands_4, HUSBANDS_ROWS))
    {
        return false;
    }
    if (!load<HUSBANDS_COL>("husbands_5.out", husbands_5, HUSBANDS_ROWS))
    {
        return false;
    }
    if (!load<WIVES_COL>("wives.out", wives, WIVES_ROWS))
    {
        return false;
    }
    if (!load<WAGE_MOM_COL>("wage_moments.txt", wage_moments, WAGE_MOM_ROWS))
    {
        return false;
    }
    if (!load<MARR_MOM_COL>("marr_fer_moments.txt", marr_fer_moments, MARR_MOM_ROWS))
    {
        return false;
    }
    if (!load<EMP_MOM_COL>("emp_moments.txt", emp_moments, EMP_MOM_ROWS))
    {
        return false;
    }
    if (!load<GEN_MOM_COL>("general_moments.txt", general_moments, GEN_MOM_ROWS))
    {
        return false;
    }
    if (!load<INIT_PARAM_COL>("init_parameters.txt", param, INIT_PARAM_ROWS))
    { 
        return false;
    }

    // some validations on override parameters
    if (PARAM_ROWS != PARAM_IDX_ROWS || INIT_PARAM_ROWS < PARAM_IDX_ROWS)
    {
        std::cerr << "Invalid number of override parameters (#initial=" << INIT_PARAM_ROWS << ",#override=" << PARAM_ROWS << ",#index=" << PARAM_IDX_ROWS << ")" << std::endl;
        std::cerr << "Not overriding initial parameters" << std::endl;
    }
    else
    {
        float override_param[PARAM_ROWS];
        if (!load<PARAM_COL>("parameters.txt", override_param, PARAM_ROWS))
        {
            std::cerr << "Not overriding initial parameters" << std::endl;
        }
        else
        {
            uint16_t override_index[PARAM_IDX_ROWS];
            if (!load<PARAM_IDX_COL, uint16_t>("parameters_idx.txt", override_index, PARAM_IDX_ROWS))
            {
                std::cerr << "Not overriding initial parameters" << std::endl;
            }
            else
            {
                for (uint16_t i = 0; i < PARAM_ROWS; ++i)
                {
                    if (override_index[i] < INIT_PARAM_ROWS)
                    {
                        param[override_index[i]] = override_param[i];
                    }
                    else
                    {
                        std::cerr << "Invalid parameter index " << override_index[i] << " at row " << i << ", parameter override is skipped" << std::endl;
                    }
                }
            }
        }
    }

    print_toc(tv);
    tv = tic();
    std::cout << "Initializing random shocks..." << std::endl;

    // start with the same random shoks
    srand(1234); 

    // random shocks' mean and variance
    const float myu = 0;
    const float sig = 1;

    // random draw from normal distribution, for EMAX calculation
    for (uint16_t i = 0; i < DRAW_B; ++i)
    {
	    for (uint16_t j = 0; j < T_MAX; ++j)
        {
		    for (uint16_t k = 0; k < SCHOOL_GROUPS; ++k)
            {
			    for (uint16_t s = 0; s < 2; ++s)
                {
				    epsilon_b(i,j,k,s)  = mvnrnd(myu, sig);
                }
            }
        }
    }
	
    // TODO PERF reorder the nested loops and put draws in inner most and merge the F with the B loops
    // random draw from normal distribution, for shocks realizations in forward solution
    for (uint16_t i = 0; i < DRAW_F; ++i)
    {
	    for (uint16_t j = 0; j < T_MAX; ++j)
        {
		    for (uint16_t k  = 0; k < SCHOOL_GROUPS; ++k)
            {
			    for (uint16_t s = 0; s < 2; ++s)
                {
				    epsilon_f(i,j,k,s)  = mvnrnd(myu, sig);
                }	
            }
        }
    }

    // random draw from uniform distribution, for backward solution
    for (uint16_t i = 0; i < DRAW_B; ++i)
    {
	    for (uint16_t j = 0; j < T_MAX; ++j)
        {
		    for (uint16_t k = 0; k < SCHOOL_GROUPS; ++k)
            {
                // 0-HUSBAND; 1-HUSBAND EXP+SCHOOLING; 2-HUSBAND ABILITY; 3-INITIAL MATCH QUALITY;
				h_draws_b(i,j,k,h_b_HUSBAND)  = rand01();
				h_draws_b(i,j,k,h_b_HUSBAND_EXP_SCHOOLING)  = rand01();
                h_draws_b(i,j,k,h_b_HUSBAND_ABILITY)  = (float)randi(MAX_ABILITY_IDX);
                h_draws_b(i,j,k,h_b_INITIAL_MATCH_QUALITY)  = (float)randi(MAX_Q_IDX);
            }
        }
    }

    for (uint16_t i = 0; i < DRAW_B; ++i)
    {
	    for (uint16_t j = 0; j < T_MAX; ++j)
        {
		    for (uint16_t k = 0; k < SCHOOL_GROUPS; ++k)
            {
                // 0- wife; 1-wife EXP+SCHOOLING+PREV_STATE; 2-wife ABILITY; 3-INITIAL MATCH QUALITY; 4-JOB OFFER FOR MARRIED MEN AND WOMEN EMAX; 5-JOB OFFER FOR SINGLE MEN EMAX
				w_draws_b(i,j,k,w_b_WIFE)  = rand01();
				w_draws_b(i,j,k,WIFE_EXP_SCHOOLING_PREV_STATE)  = rand01();
                w_draws_b(i,j,k,WIFE_ABILITY)  = (float)randi(MAX_ABILITY_IDX);
                w_draws_b(i,j,k,w_b_INITIAL_MATCH_QUALITY)  = (float)randi(MAX_Q_IDX);
                w_draws_b(i,j,k,JOB_OFFER_MARRIED_MEN_WOMEN)  = rand01();
                w_draws_b(i,j,k,JOB_OFFER_SINGLE_MEN)  = rand01();
            }
        }
    }

    // random draw from uniform distribution, for forward solution
    for (uint16_t i = 0; i < DRAW_F; ++i)
    {
        for (uint16_t k  = 0; k < SCHOOL_GROUPS; ++k)
        {
            // wife ability draw, constant by period
            w_ability_draw(i,k) = randi(MAX_ABILITY_IDX);
        }
    }
    
    for (uint16_t i = 0; i < DRAW_F; ++i)
    {
	    for (uint16_t j = 0; j < T_MAX; ++j)
        {
            for (uint16_t k  = 0; k < SCHOOL_GROUPS; ++k)
            {
                // 0- HUSBAND; 1-HUSBAND EXP+SCHOOLING; 2-HUSBAND ABILITY; 3-INITIAL MATCH QUALITY; 4-MATCH UALITY CHANGE PROBABILITY
    	        for (uint16_t s = 0; s < 2; ++s)
                {
				    h_draws(i,j,k,h_HUSBAND)  = rand01();
				    h_draws(i,j,k,h_HUSBAND_EXP_SCHOOLING)  = rand01();
                    h_draws(i,j,k,h_HUSBAND_ABILITY)  = (float)randi(MAX_ABILITY_IDX);
                    h_draws(i,j,k,h_INITIAL_MATCH_QUALITY)  = (float)randi(MAX_Q_IDX);
                    h_draws(i,j,k,MATCH_UALITY_CHANGE_PROBABILITY)  = rand01();
                }
            }
        }
    }

    for (uint16_t i = 0; i < DRAW_F; ++i)
    {
	    for (uint8_t j = 0; j < T_MAX; ++j)
        {
		    for (uint8_t k = 0; k < SCHOOL_GROUPS; ++k)
            {
               	for (uint8_t s = 0; s < 2; ++s)
               	{
               	    // 0 - JOB OFFER, 1 - NEW BORN
               	    w_draws(i,j,k,s) = rand01();
               	}
            }
        }
    }

    print_toc(tv);

    return true;
}