Readme improvement
This commit is contained in:
39
README.md
39
README.md
@@ -1,3 +1,40 @@
|
|||||||
# cmc-pseudo-polynomials
|
# cmc-pseudo-polynomials
|
||||||
|
|
||||||
Курсовой проект за первый курс магистратуры ВМК МГУ
|
Курсовой проект за первый курс магистратуры ВМК МГУ
|
||||||
|
|
||||||
|
## Сборка
|
||||||
|
Требуется cmake и компилятор C++ с поддержкой C++14.
|
||||||
|
Если это не gcc, возможно, потребуется поправить CMakeLists.txt.
|
||||||
|
|
||||||
|
Команды для сборки могут быть такими:
|
||||||
|
```
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
Количество аргументов у функции изменяются в коде через изменение `ARGS_COUNT` в файле `main.cpp`.
|
||||||
|
Поддерживаются значения от 2 до 5.
|
||||||
|
Также может быть полезно отключить генерацию разбиения по классам эквивалентности, это параметр `ONLY_CREATE_CLASSES` в том же классе.
|
||||||
|
Это может ускорить полную генерацию и значительно сократит потребление памяти.
|
||||||
|
|
||||||
|
## Запуск
|
||||||
|
Для запуска достаточно собрать проект и вызвать
|
||||||
|
```
|
||||||
|
./main
|
||||||
|
````
|
||||||
|
|
||||||
|
|
||||||
|
## Анализ результатов
|
||||||
|
Результаты записываются в файлы вида `base_4_rank_3.txt` в рабочей директории.
|
||||||
|
Первое число означает число аргументов у функции, а второе длину функций в классе ПСПФ.
|
||||||
|
Сам файл представляет собой вектор битов,
|
||||||
|
где бит N выставлен если функция принадлежит множеству функций с фиксированным числом аргументов и длиной в классе ПСПФ.
|
||||||
|
|
||||||
|
Для анализа этих файлов удобно использовать `get_function_len.py` (требуется Python3). Для экономии места эти файлы можно предварительно сжать в XZ архивы. Есть несколько вариантов использования:
|
||||||
|
|
||||||
|
1. Получить длину некоторой функции. Пример `python3 get_function_len.py 10101010`, где `10101010` -- вектор значений функции.
|
||||||
|
2. Подсчёт количества функций по классам. Пример: `python3 get_function_len.py count_lens 3`, где 3 -- количество аргументов у функций.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user