Skip to content

Юркин Георгий.Технология OMP. Построение выпуклой оболочки – проход Грэхема. Вариант 22.#474

Open
Georghinho wants to merge 1 commit intolearning-process:masterfrom
Georghinho:yurkin_g_var22_omp_1
Open

Юркин Георгий.Технология OMP. Построение выпуклой оболочки – проход Грэхема. Вариант 22.#474
Georghinho wants to merge 1 commit intolearning-process:masterfrom
Georghinho:yurkin_g_var22_omp_1

Conversation

@Georghinho
Copy link
Contributor

@Georghinho Georghinho commented Mar 21, 2026

Описание

  • Задача: Построение выпуклой оболочки – проход Грэхема.
  • Вариант: 22
  • Технология: OMP
  • Описание вашей реализации и отчёта.
    Алгоритм — последовательная реализация прохода Грэхема, адаптированная под OMP. На вход подаётся целое n (количество точек). В препроцессинге точки либо генерируются равномерно по окружности, либо загружаются через LoadPoints; при возможности генерация и чтение выполняются параллельно. Далее выполняется параллельная сортировка по координатам и по полярному углу относительно опорной точки, после чего последовательным проходом удаляются дубликаты. Опорная точка выбирается как точка с минимальным 𝑦(при равенстве — минимальный 𝑥). Остальные точки сортируются по полярному углу относительно опорной с компаратором на основе кросс‑произведения и при коллинеарности — по расстоянию до опорной точки. Построение выпуклой оболочки выполняется стеком: для каждой точки, пока ориентация последних двух точек стека и текущей ≤ 0, выполняется pop, затем точка пушится; в стеке остаются вершины выпуклой оболочки, доступные через GetConvexHull. Для сохранения корректности порядок точек при построении оболочки обрабатывается последовательно; при необходимости для ускорения на больших наборах реализовано разбиение на блоки с параллельным построением локальных оболочек и их последующим слиянием. Сложность алгоритма 𝑂(𝑛log 𝑛) по времени и 𝑂(𝑛) по памяти. Обработаны граничные случаи: 0–2 точки, коллинеарность, дубликаты.

Чек-лист

  • Статус CI: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
  • Директория и именование задачи: Я создал директорию с именем <фамилия>_<первая_буква_имени>_<короткое_название_задачи>
  • Полное описание задачи: Я предоставил полное описание задачи в теле pull request
  • clang-format: Мои изменения успешно проходят clang-format локально в моем форке (нет ошибок форматирования)
  • clang-tidy: Мои изменения успешно проходят clang-tidy локально в моем форке (нет предупреждений/ошибок)
  • Функциональные тесты: Все функциональные тесты успешно проходят локально на моей машине
  • Тесты производительности: Все тесты производительности успешно проходят локально на моей машине
  • Ветка: Я работаю в ветке, названной точно так же, как директория моей задачи
    (например, nesterov_a_vector_sum), а не в master
  • Правдивое содержание: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и
    достоверными

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 80.95238% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.16%. Comparing base (97dd371) to head (5452247).

Files with missing lines Patch % Lines
tasks/yurkin_g_graham_scan/omp/src/ops_omp.cpp 80.95% 2 Missing and 6 partials ⚠️

❌ Your patch status has failed because the patch coverage (80.95%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #474      +/-   ##
==========================================
- Coverage   79.16%   79.16%   -0.01%     
==========================================
  Files         267      268       +1     
  Lines        9325     9367      +42     
  Branches     3963     3992      +29     
==========================================
+ Hits         7382     7415      +33     
- Misses       1374     1377       +3     
- Partials      569      575       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants