Для чего нужен специалист,
Я, кстати, думал что вы и есть специалист.
Квен писал(а):
Но мы можем написать свою функцию, которая ищет факторы по одному через Z_smallest_factor() и прерывает, когда найдено 3.
Вот это пока откладывается. Доступ на сегодня закончен.
Так что нужно попробовать извлечь хоть какую-то пользу из успешного тестирования применения setitimer. То есть нужно как-то интегрировать простенький файл Test_5.gp и нашу весьма немаленькую программу .gp , которая запускается совершенно по-другому.
Вот Test_5.gp :
Код:
#install(gp_safe_factor, GG, safe_factor)
{
\\ my(n = 10000000000000000000000000069800000000000000000000000120901);
my(n = 83249599403652415669870228237450726343942320967741813929973);
my(limit = 110000);
my(res = safe_factor(n, limit));
my(status = res[1]);
my(elapsed = res[2]);
my(factors = res[3]);
if (status == -1,
print("ТАЙМ-АУТ! (лимит ", limit, " mks, потрачено ", elapsed, " mks)");
,
my(nfactors = matsize(factors)[1]);
print("Лимит ", limit, " mks");
print("Фaкторизация завершена за ", elapsed, " mks");
print(n);
print("Найдено ", nfactors, " факторов:");
print(factors);
);
}
Ещё у меня два файла timer_wrapper_5.c и main.c. И вот такими командами из Убунты я запускаю:
Код:
yadryara@DESKTOP-QPP2F5P:~/Test5$ gp2c -g Test_5.gp > Test_5.gp.c
yadryara@DESKTOP-QPP2F5P:~/Test5$ gcc -o Test_5 Test_5.gp.c timer_wrapper_5.c main.c -lpari
yadryara@DESKTOP-QPP2F5P:~/Test5$ ./Test_5
ТАЙМ-АУТ! (лимит 110000 mks, потрачено 110529 mks)
yadryara@DESKTOP-QPP2F5P:~/Test5$ ./Test_5
ТАЙМ-АУТ! (лимит 110000 mks, потрачено 110428 mks)
yadryara@DESKTOP-QPP2F5P:~/Test5$ ./Test_5
ТАЙМ-АУТ! (лимит 110000 mks, потрачено 110143 mks)
yadryara@DESKTOP-QPP2F5P:~/Test5$ ./Test_5
ТАЙМ-АУТ! (лимит 110000 mks, потрачено 110511 mks)
yadryara@DESKTOP-QPP2F5P:~/Test5$ ./Test_5
ТАЙМ-АУТ! (лимит 110000 mks, потрачено 110077 mks)
yadryara@DESKTOP-QPP2F5P:~/Test5$
Здесь видно, что запаздывание порой превышает 500 микросекунд.
Рабочую программу я тоже запускаю из Убунты, но совершенно по другому. Даже если брать простой единичный запуск, без батника:
Код:
yadryara@DESKTOP-QPP2F5P:~/D96-20/0-0-10-10-0-9!$ gp2c-run -g Rab_243_20_0_test_3.gp
Ну и файлы у меня в папке запуска другие.
То есть нужно либо в рабочую прогу Rab_243_20_0_test_3.gp встраивать Test_5.gp либо наоборот, в Test_5.gp встраивать длиннющую рабочую прогу. Второй вариант конечно не хочется делать.