int main()
{
	int Error = 0;

	//Test QR square
	Error += test_qr(glm::dmat3(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0)) ? 1 : 0;

	//Test RQ square
	Error += test_rq(glm::dmat3(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0)) ? 1 : 0;

	//Test QR triangular 1
	Error += test_qr(glm::dmat3x4(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0, 7.0, 2.0, 15.0)) ? 1 : 0;

	//Test QR triangular 2
	Error += test_qr(glm::dmat4x3(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0, 7.0, 2.0, 15.0)) ? 1 : 0;

	//Test RQ triangular 1 : Fails at the triangular test
	Error += test_rq(glm::dmat3x4(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0, 7.0, 2.0, 15.0)) ? 1 : 0;

	//Test QR triangular 2
	Error += test_rq(glm::dmat4x3(12.0, 6.0, -4.0, -51.0, 167.0, 24.0, 4.0, -68.0, -41.0, 7.0, 2.0, 15.0)) ? 1 : 0;

	return Error;
}
Example #2
0
//extern uchar pass_cut;
void criteria(cell *c)
{
    uchar let = 0, *raster = 0;
    cf::version *vers = 0;
    int16_t r = 0, flacc = 0, flon = 0, inc = 0;
    cf::version save[VERS_IN_CELL] = { 0 };
    int16_t snvers = 0;

    // #define PROB_V_OK 170
    if (c->nvers > 0)
        memcpy(save, c->vers, c->nvers);
    snvers = c->nvers;
    if (!c->nvers)
        return;
    get_b_lines(c, &bl);
    H = (int16_t) get_size();
    if (c->nvers == 1 && c->vers[0].let == '>')
        test_rq(c);
    if (c->nvers == 1 && ((let = c->vers[0].let) == 'c' || let == 'C') || (c->nvers == 2
            && (c->vers[0].let == 'c' && c->vers[1].let == 'C' || c->vers[0].let == 'C'
                    && c->vers[1].let == 'c')))
        test_c(c);
    if (c->nvers >= 2 && (c->vers[0].let == 'a' && c->vers[1].let == 'o' || c->vers[0].let == 'o'
            && c->vers[1].let == 'a'))
        crit_oa(c);
    for (vers = c->vers, flacc = flon = 0; (let = vers->let) != 0; vers++) {
        { //Andrew
            if ((let = vers->let) == liga_CC || let == liga_CR) {
                raster = save_raster(c);
                inc = AnglesCurve(raster, (int16_t) ((c->w + 7) / 8), c->h);
                inc = (4 - inc) * 40;
                if (3 * c ->w > 4 * c ->h)
                    inc += 150;
                if (3 * c ->w < 2 * c ->h)
                    inc += 150;

                if (c->env && c->env->nl < 4)
                    inc += 100;

                if (vers->prob > inc)
                    vers->prob -= inc;
                else
                    vers->prob = 0;
            }
        }

        if (((language == LANGUAGE_FRENCH || language == LANGUAGE_ITALIAN) && memchr(
                "ACEIOUaceiou", let, 12) || // Включая нижние акценты "c" 05.07.2002 E.P.
                language == LANGUAGE_SPANISH && memchr("AEINOUaeniou", let, 12) || language
                == LANGUAGE_GERMAN && memchr("AOUaou", let, 6) || language == LANGUAGE_RUSSIAN
                && memchr("Ґ…", let, 2) || language == LANGUAGE_CROATIAN
                && memchr("SZCszc", let, 6)
        /*&& !pass_cut*/|| language == LANGUAGE_POLISH && memchr("AESZCNOaeszcno", let, 14) || // Включая нижние акценты a,e 05.07.2002 E.P.
                language == LANGUAGE_PORTUGUESE && memchr("AEOUIaeoui", let, 10) || language
                == LANGUAGE_SWEDISH && memchr("AEOaeo", let, 6)) && !flacc ||

        // 05.09.2000 E.P.
                language == LANGUAGE_CZECH && memchr("AaCcDdEeIiNnOoRrSsTtUuYyZz", let, 26)
                || language == LANGUAGE_ROMANIAN && memchr("AaIiSsTt", let, 8) || // Включая нижние акценты s,t 05.07.2002 E.P.
                language == LANGUAGE_HUNGARIAN && memchr("AaEeIiOoUu", let, 10) || language
                == LANGUAGE_SLOVENIAN && memchr("CcSsZz", let, 6) ||

        // 09.07.2001 E.P.
                language == LANGUAGE_LATVIAN && memchr("AaCcEeGgIiKkLlNnSsUuZz", let, 22)
                || language == LANGUAGE_LITHUANIAN && memchr("AaCcEeIiSsUuZz", let, 14) || language
                == LANGUAGE_ESTONIAN && memchr("AaOoSsUuZz", let, 10) ||

        // 21.05.2002 E.P.
                language == LANGUAGE_TURKISH && (memchr("AaCcIiGgOoSsUu", let, 14) || let
                        == i_sans_accent) || 0) {
            flacc = 1;
            if (accent(c))
                break;
        }

        // Урезание чужих букв из общих таблиц
        if (language == LANGUAGE_POLISH && memchr("qQ", let, 2) ||

        // BULGAR 08.09.2000 E.P.
                language == LANGUAGE_RUSSIAN && langBul && (let == 155 || let == 235 || // Ыы 08.09.2000 E.P.
                        let == 157 || let == 237 || // Ээ 08.09.2000 E.P.
                        let == r_EE_2dot || let == r_e_2dot) ||

        language == LANGUAGE_SLOVENIAN && isnot_slovenian(let) ||

        // 09.07.2001 E.P.
                language == LANGUAGE_LATVIAN && isnot_latvian(let) || language
                == LANGUAGE_LITHUANIAN && isnot_lithuanian(let) || language == LANGUAGE_ESTONIAN
                && isnot_estonian(let) ||

        // 21.05.2002 E.P.
                language == LANGUAGE_TURKISH && isnot_turkish(let) || 0) {
            vers->prob >>= 1;
            if (vers->prob & 1)
                vers->prob--;
            if (!vers->prob)
                vers->prob = 2;
        }

        if (c->isBadLetter()) // Oleg : 02-28-96 04:55pm : letter only
            if (((let = vers->let) == 'i' || let == 'j' || (language == LANGUAGE_TURKISH && let
                    == II_dot_accent) // 17.06.2002 E.P.
            ) && (r = ij_dot(c)) != 0) {
                if (r > 0)
                    break;
                vers--;
                continue;
            }

        // Nick 18.06.2002
        if (language == LANGUAGE_TURKISH && ((let = vers->let) == i_sans_accent || let
                == II_dot_accent) && (r = upper_right_angle(c)) > 0) {
            vers->prob = MAX(2, vers->prob - r);
            continue;
        }

        if ((let = vers->let) == '!' || let == '?') {
            if (excl_dot(c) > 0)
                break;
            vers--;
            continue;
        }
        if (language != LANGUAGE_RUSSIAN) // refuse with  ,Ў
            if ((let = vers->let) == invers_exm || let == invers_qm) {
                if (inv_dot(c) > 0)
                    break;
                vers--;
                continue;
            }

        if ((language == LANGUAGE_FRENCH || language == LANGUAGE_TURKISH // 18.06.2002 E.P.
        ) && (vers->let == 'c' || vers->let == 'C'))
            c_to_ctail(c, 0); // AL 940321
        if (vers->let == liga_rt && not_rt(c)) {
            vers--;
            continue;
        }
        if (is_liga_ff(vers->let) && not_ff(c)) {
            vers--;
            continue;
        }

        if (vers->let == 'n' || vers->let == 'o')
            flon = 1;
    }
int main()
{
	int snap_id;
	int ret;
	int cpu;
	int i;
	enum cbs_type mode;
	struct timeval period;
	cbs_t *cbs_ts = malloc(sizeof(cbs_t) * t1_procs);
	struct cbs_tester *ct1 = malloc(sizeof(struct cbs_tester) * t1_procs);

	for(i = 0; i < t1_procs; i++)
	{
		if(test1[i][0] == 0)
		{
			mode = CBS_RT;
		} else
		{
			mode = CBS_BW;
		}
		cpu = test1[i][1];
		period.tv_usec = test1[i][2];

		//printf("Creating new CBS process...\n");
		if((ret = cbs_create(&cbs_ts[i], mode, cpu, &period, &entry,  (void *)(&test1[i][3]))) != 0)
		{
			printf("Failed to create process %d with ret val %d\n", i, ret);
		} else
		{
			ct1[i].utilization = cpu/period.tv_usec;
			ct1[i].cpu = cpu;
			ct1[i].period_usec = period.tv_usec;
			ct1[i].pid = ((struct cbs_task *)cbs_ts+i)->pid;
			printf("Spawned process with PID: %d\n", ct1[i].pid);
		}

	}

	signal(SIGINT, handle_interrupt);
	snap_event *ev = malloc(sizeof(snap_event) * 8);
	snap_trig *tr = malloc(sizeof(snap_trig) * 8);
	for(i = 0; i < 8; i++)
	{
		ev[i] = SNAP_EVENT_CBS_SCHED;
		tr[i] = 0;
	}

	for(i = 0; i < 4; i++)
	{
		syscall(314, ev, tr, 8);
		snap_id = 0;

		test_rq(snap_id);
		test_utilization(snap_id);
		sleep(2);
	}

	free(ev);
	free(tr);
	free(cbs_ts);
	free(ct1);
}