Example #1
0
static bool is_hinted_without_gasp(DWriteFontTypeface* typeface) {
    AutoTDWriteTable<SkOTTableMaximumProfile> maxp(typeface->fDWriteFontFace.get());
    if (!maxp.fExists) {
        return false;
    }
    if (maxp.fSize < sizeof(SkOTTableMaximumProfile::Version::TT)) {
        return false;
    }
    if (maxp->version.version != SkOTTableMaximumProfile::Version::TT::VERSION) {
        return false;
    }

    if (0 == maxp->version.tt.maxSizeOfInstructions) {
        // No hints.
        return false;
    }

    AutoTDWriteTable<SkOTTableGridAndScanProcedure> gasp(typeface->fDWriteFontFace.get());
    return !gasp.fExists;
}
Example #2
0
void CODECHECK_sexActivity(Population &P)
{
	vector<double> age = vector_seq(10.0, 80.0, 200);
	vector<double> rskgrp = vector_seq(0, 2, 3);
	vector<double> nprtn = vector_seq(0, 9, 10);
	
	// --- Age

	vector<double> fage(age.size());
	
	for (int i=0; i<age.size(); i++) {
		fage[i] = P.sexAct_reduce_age(age[i]);
	}
	
	dcMatrix Mage(age);
	Mage.addColVector(fage);
	Mage.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_age.out");

	
	// --- Risk
	
	vector<double> frisk(rskgrp.size());
	
	for (int i=0; i<rskgrp.size(); i++) {
		frisk[i] = P.sexAct_reduce_riskGroup((int)(rskgrp[i]));
	}
	
	dcMatrix Mrisk(rskgrp);
	Mrisk.addColVector(frisk);
	Mrisk.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_risk.out");

	
	// --- Number of partners
	
	vector<double> fnp(nprtn.size());
	
	for (int i=0; i<nprtn.size(); i++) {
		fnp[i] = P.sexAct_reduce_nPartners((int)(nprtn[i]));
	}
	
	dcMatrix Mnp(nprtn);
	Mnp.addColVector(fnp);
	Mnp.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_npartner.out");
	
	
	// --- Maximum number of concurrent partners
	
	vector<double> maxp(rskgrp.size());
	
	for (int i=0; i<rskgrp.size(); i++) {
		maxp[i] = P.proba_nMaxCurrSexPartner(male, (int)(rskgrp[i]));
	}
	
	dcMatrix Mmaxp(rskgrp);
	Mmaxp.addColVector(maxp);
	Mmaxp.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_maxpartner_male.out");
	
	
	maxp.clear();
	maxp.resize(rskgrp.size());
	
	for (int i=0; i<rskgrp.size(); i++) {
		maxp[i] = P.proba_nMaxCurrSexPartner(female, (int)(rskgrp[i]));
	}
	
	dcMatrix Mmaxp2(rskgrp);
	Mmaxp2.addColVector(maxp);
	Mmaxp2.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_maxpartner_female.out");

	
	// --- Probability sex with CSW
	
	vector<double> pcsw(rskgrp.size());
	
	for (int i=0; i<rskgrp.size(); i++) {
		pcsw[i] = P.probaSex_sexworker((int)(rskgrp[i]));
	}
	
	dcMatrix Mpcsw(rskgrp);
	Mpcsw.addColVector(pcsw);
	Mpcsw.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_probacsw.out");

	
	// --- Probability sex type 0
	
	vector<double> psex0;
	vector<double> r1;
	vector<double> r2;
	
	for (int i=0; i<=rskgrp.size(); i++) {
		for (int j=0; j<=rskgrp.size(); j++) {
			r1.push_back(i);
			r2.push_back(j);
			psex0.push_back(P.probaSex_type0(i, j));
		}
	}
	
	dcMatrix Msex0(r1);
	Msex0.addColVector(r2);
	Msex0.addColVector(psex0);
	Msex0.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_probatype0.out");
	
	// --- Probability sex type 1
	
	vector<double> psex1;
	r1.clear();
	r2.clear();
	
	for (int i=0; i<=rskgrp.size(); i++) {
		for (int j=0; j<=rskgrp.size(); j++) {
			r1.push_back(i);
			r2.push_back(j);
			psex1.push_back(P.probaSex_type1(i, j));
		}
	}
	
	dcMatrix Msex1(r1);
	Msex1.addColVector(r2);
	Msex1.addColVector(psex1);
	Msex1.WriteToFileCSV(_DIR_VIZINPUT + "viz_input_sexact_probatype1.out");

	
}