Skip to content
This repository has been archived by the owner on Mar 31, 2022. It is now read-only.

Commit

Permalink
(#21) Добавление вычисления сглаженной периодограммы:
Browse files Browse the repository at this point in the history
* Описана процедура сглаживания коррелограммы;
* Описана процедура вычисления сглаженной периодограммы;
* Добавлена визуализация сглаженной периодограммы;
* Добавлен новый Workflow для проверки флага отладки;
* Добавлено описание и новые бейджи.
  • Loading branch information
Pavel Sobolev authored Mar 22, 2020
1 parent b727e11 commit 384d15a
Show file tree
Hide file tree
Showing 54 changed files with 696 additions and 409 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/bash

# Определение функции для проверки команд

# Вывод названия скрипта
printf "\nЗапущен скрипт для проверки сборки и очистки программы.\n"

# Определение функции для проверки команд
function check_if_succeeded {

# Вывод информации о запущенной программе
Expand Down Expand Up @@ -42,7 +42,7 @@ make clean
printf "Проверяется, пуста ли директории с объектными файлами.\n\n"

if [ -z "$(ls Объектники/)" ]; then
printf "Директория пуста, все в порядке.\n\n"
printf "Директория пуста, все в порядке.\n"
else
printf "[!] Директория с объектными файлами не пуста.\n\n"
exit 1
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

# Вывод названия скрипта
printf "\nЗапущен скрипт для установки зависимостей.\n\n"

# Установка модуля matplotlib
printf "Выполняется установка модуля matplotlib.\n\n"
pip3 install matplotlib

# Установка дополнительных шрифтов из пакета texlive
printf "\nВыполняется установка дополнительных шрифтов из пакета texlive.\n\n"
sudo apt-get install texlive-fonts-extra

# Установка кириллических шрифтов из пакета texlive
printf "\nВыполняется установка кириллических шрифтов из пакета texlive.\n\n"
sudo apt-get install texlive-lang-cyrillic

# Установка пакета cm-super
printf "\nВыполняется установка пакета cm-super.\n\n"
sudo apt-get install cm-super
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ gmake clean
printf "Проверяется, пуста ли директории с объектными файлами.\n\n"

if [ -z "$(ls Объектники/)" ]; then
printf "Директория пуста, все в порядке.\n\n"
printf "Директория пуста, все в порядке.\n"
else
printf "[!] Директория с объектными файлами не пуста.\n\n"
exit 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ printf "\nЗапущен скрипт установки MacPorts.\n\n"

# Скачивание пакета MacPorts 2.6 для macOS 10.15 Catalina

printf "\nВыполняется скачивание пакета.\n\n"
printf "Выполняется скачивание пакета.\n\n"
curl -JOL 'https://github.com/macports/macports-base/releases/download/v2.6.2/MacPorts-2.6.2-10.15-Catalina.pkg'

# Получение полного пути к файлу
Expand Down Expand Up @@ -41,4 +41,4 @@ printf $RESULT
# Установка пакета

printf "\n\nВыполняется установка пакета.\n\n"
sudo installer -verbose -pkg $RESULT -target /
sudo installer -verbose -pkg $RESULT -target /
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export PATH=$PATH:/opt/local/bin

# Установка gmake

printf "\nВыполняется установка gmake.\n\n"
printf "Выполняется установка gmake.\n\n"
sudo port install gmake

# Проверка, установлен ли gmake
Expand Down
42 changes: 42 additions & 0 deletions .github/scripts/NoDebugging.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

# Вывод названия скрипта
printf "\nЗапущен скрипт, проверяющий, активен ли флаг отладки\n\n"

# Определение начального числа ошибок
ERROR_COUNT=0

# Описание функции для проверки make-файлов
function check_debugging {

printf "Проверяется make-файл $1 ...\n\n"

if grep "debugging := " "$1" | grep -q "true"; then

printf "[!] Флаг отладки активирован в этом make-файле.\n\n"
ERROR_COUNT=$((ERROR_COUNT+1))

else

printf "Флаг отладки НЕ активирован в этом make-файле.\n\n"

fi

}

# Проверка make-файлов
check_debugging "Программа/Makefile"
check_debugging "Make-файлы/gfortran-9"
check_debugging "Make-файлы/gmake"

# Проверка числа ошибок
if [ "$ERROR_COUNT" -gt 0 ]; then

printf "Число ошибок: $ERROR_COUNT\n\n"
exit 1

else

printf "\nВсё в порядке.\n"

fi
2 changes: 1 addition & 1 deletion .github/scripts/NoObjects.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ printf "\nЗапущен скрипт, проверяющий, пуста ли
printf "Проверяется, пуста ли директории с объектными файлами.\n\n"

if [ -z "$(ls Программа/Объектники/)" ]; then
printf "Директория пуста, все в порядке.\n\n"
printf "Директория пуста, все в порядке.\n"
else
printf "[!] Директория с объектными файлами не пуста.\n\n"
exit 1
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/Build&Clean (Linux) (feature).yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,7 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Установка пакетов и модулей
run: bash .github/scripts/Build\&Clean\ \(Linux\,\ установка\ зависимостей\).sh
- name: Запуск скрипта для проверки сборки
run: bash .github/scripts/Build\&Clean\ \(Linux\,\ проверка\ сборки\ и\ очистки\).sh
run: bash .github/scripts/Build\&Clean\ \(Linux\,\ проверка\ сборки\ и\ очистки\).sh
2 changes: 2 additions & 0 deletions .github/workflows/Build&Clean (Linux) (master).yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,7 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Установка пакетов и модулей
run: bash .github/scripts/Build\&Clean\ \(Linux\,\ установка\ зависимостей\).sh
- name: Запуск скрипта для проверки сборки
run: bash .github/scripts/Build\&Clean\ \(Linux\,\ проверка\ сборки\ и\ очистки\).sh
4 changes: 3 additions & 1 deletion .github/workflows/Build&Clean (macOS) (feature).yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:

- name: Установка gmake
run: bash .github/scripts/Build\&Clean\ \(macOS\,\ установка\ gmake\).sh

- name: Запуск скрипта для проверки сборки
env:
RUNNING_IN_MACOS_VM: True
run: bash .github/scripts/Build\&Clean\ \(macOS\,\ проверка\ сборки\ и\ очистки\).sh
2 changes: 2 additions & 0 deletions .github/workflows/Build&Clean (macOS) (master).yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ jobs:
run: bash .github/scripts/Build\&Clean\ \(macOS\,\ установка\ gmake\).sh

- name: Запуск скрипта для проверки сборки
env:
RUNNING_IN_MACOS_VM: True
run: bash .github/scripts/Build\&Clean\ \(macOS\,\ проверка\ сборки\ и\ очистки\).sh
17 changes: 17 additions & 0 deletions .github/workflows/NoDebugging (feature).yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: NoDebugging (feature)

on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+_feature_*

jobs:
NoDebugging_feature:

name: NoDebugging Job (feature)
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Запуск скрипта для проверки флага отладки
run: bash .github/scripts/NoDebugging.sh
17 changes: 17 additions & 0 deletions .github/workflows/NoDebugging (master).yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: NoDebugging (feature)

on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+

jobs:
NoDebugging_feature:

name: NoDebugging Job (feature)
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Запуск скрипта для проверки флага отладки
run: bash .github/scripts/NoDebugging.sh
20 changes: 14 additions & 6 deletions Make-файлы/gfortran-9
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
pattern := f90

## Режим отладки (при значении true использует флаги opt_debug, при другом значении — opt_production)
debugging := true
debugging := false

## Флаги для отладки
opt_debug := -Og -g -Wall -Wextra -Warray-temporaries -Wcharacter-truncation -Wconversion-extra \
Expand All @@ -56,7 +56,7 @@
-ffpe-trap=invalid,zero,overflow,underflow -pedantic-errors -std=f2018

## Флаги для финальной сборки
opt_production := -Ofast
opt_production := -Ofast -ffree-line-length-0

## Имя главной программы
main_name := main
Expand All @@ -76,7 +76,7 @@
## Указание поддиректорий в директории с исходными файлами (всегда в окончании прямой слеш), относящихся к модулю
module_subs := Визуализация/ Визуализация/Вход/ Визуализация/Результат/ \
Вспомогательные/Освобождение/ Вспомогательные/Генерация/ Вспомогательные/Действия/Тренд/ \
Вспомогательные/Действия/Периодограмма/ Вспомогательные/Действия/Коррелограмма/ \
Вспомогательные/Действия/Периодограммы/ Вспомогательные/Действия/Коррелограммы/ \
Вход/ Вход/Освобождение/ Вход/Ошибки/ Вход/Запись/ Вход/Считывание/ \
Генерация/ Генерация/Процедуры/ Генерация/Ошибки/ \
Генерация/Параметры/ Генерация/Параметры/Ошибки/ Генерация/Параметры/Считывание/ \
Expand All @@ -85,9 +85,9 @@
Результат/ Результат/Освобождение/ Результат/Ошибки/ Результат/Запись/ \
Действия/ Действия/Ошибки/ Действия/Ошибки/Процедура/ Действия/Проверка/ Действия/Проверка/Процедура/ \
Действия/Тренд/ Действия/Тренд/Линейный/ \
Действия/Периодограмма/ Действия/Периодограмма/Процедура/ \
Действия/Периодограммы/ Действия/Периодограммы/Обычная/ Действия/Периодограммы/Сглаженная/ \
Действия/FFT/ Действия/FFT/Процедуры/ \
Действия/Коррелограмма/ Действия/Коррелограмма/Процедура/
Действия/Коррелограммы/ Действия/Коррелограммы/Обычная/ Действия/Коррелограммы/Взвешенная/

## Указание всех поддиректорий в директории с исходными файлами (всегда в окончании прямой слеш)
subs := SCATS/ $(addprefix SCATS/, $(module_subs))
Expand All @@ -102,7 +102,7 @@
# API модуля
$(obj_path)scats.o : $(obj_path)scats_gen_m.o $(obj_path)scats_input_m.o \
$(obj_path)scats_visualize_m.o $(obj_path)scats_result_m.o \
$(obj_path)scats_do_m.o
$(obj_path)scats_do_m.o $(obj_path)prec_m.o

# Вспомогательная процедура генерации
$(obj_path)scats_generate_s.o : $(obj_path)scats.o
Expand All @@ -120,6 +120,12 @@
# Вспомогательная процедура для вычисления коррелограммы
$(obj_path)scats_calculate_correlogram_s.o : $(obj_path)scats.o

# Вспомогательная процедура для вычисления взвешенной коррелограммы
$(obj_path)scats_calculate_weighted_correlogram_s.o : $(obj_path)scats.o

# Вспомогательная процедура для вычисления сглаженной периодограммы
$(obj_path)scats_calculate_weighted_periodogram_s.o : $(obj_path)scats.o

# Визуализация
$(obj_path)scats_visualize_input_s.o : $(obj_path)scats_visualize_m.o
$(obj_path)scats_visualize_result_s.o : $(obj_path)scats_visualize_m.o
Expand Down Expand Up @@ -198,12 +204,14 @@
$(obj_path)scats_do_errors_m.o $(obj_path)scats_do_fft_m.o

$(obj_path)scats_do_periodogram_calculate_s.o : $(obj_path)scats_do_periodogram_m.o
$(obj_path)scats_do_periodogram_calculate_w_s.o : $(obj_path)scats_do_periodogram_m.o

# Вычисление коррелограммы
$(obj_path)scats_do_correlogram_m.o : $(obj_path)prec_m.o $(obj_path)scats_result_m.o \
$(obj_path)scats_do_errors_m.o $(obj_path)scats_do_fft_m.o

$(obj_path)scats_do_correlogram_calculate_s.o : $(obj_path)scats_do_correlogram_m.o
$(obj_path)scats_do_correlogram_calculate_w_s.o : $(obj_path)scats_do_correlogram_m.o

# Определение флагов компилятора

Expand Down
20 changes: 14 additions & 6 deletions Make-файлы/gmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
pattern := f90

## Режим отладки (при значении true использует флаги opt_debug, при другом значении — opt_production)
debugging := true
debugging := false

## Флаги для отладки
opt_debug := -Og -g -Wall -Wextra -Warray-temporaries -Wcharacter-truncation -Wconversion-extra \
Expand All @@ -56,7 +56,7 @@
-ffpe-trap=invalid,zero,overflow,underflow -pedantic-errors -std=f2018

## Флаги для финальной сборки
opt_production := -Ofast
opt_production := -Ofast -ffree-line-length-0

## Имя главной программы
main_name := main
Expand All @@ -76,7 +76,7 @@
## Указание поддиректорий в директории с исходными файлами (всегда в окончании прямой слеш), относящихся к модулю
module_subs := Визуализация/ Визуализация/Вход/ Визуализация/Результат/ \
Вспомогательные/Освобождение/ Вспомогательные/Генерация/ Вспомогательные/Действия/Тренд/ \
Вспомогательные/Действия/Периодограмма/ Вспомогательные/Действия/Коррелограмма/ \
Вспомогательные/Действия/Периодограммы/ Вспомогательные/Действия/Коррелограммы/ \
Вход/ Вход/Освобождение/ Вход/Ошибки/ Вход/Запись/ Вход/Считывание/ \
Генерация/ Генерация/Процедуры/ Генерация/Ошибки/ \
Генерация/Параметры/ Генерация/Параметры/Ошибки/ Генерация/Параметры/Считывание/ \
Expand All @@ -85,9 +85,9 @@
Результат/ Результат/Освобождение/ Результат/Ошибки/ Результат/Запись/ \
Действия/ Действия/Ошибки/ Действия/Ошибки/Процедура/ Действия/Проверка/ Действия/Проверка/Процедура/ \
Действия/Тренд/ Действия/Тренд/Линейный/ \
Действия/Периодограмма/ Действия/Периодограмма/Процедура/ \
Действия/Периодограммы/ Действия/Периодограммы/Обычная/ Действия/Периодограммы/Сглаженная/ \
Действия/FFT/ Действия/FFT/Процедуры/ \
Действия/Коррелограмма/ Действия/Коррелограмма/Процедура/
Действия/Коррелограммы/ Действия/Коррелограммы/Обычная/ Действия/Коррелограммы/Взвешенная/

## Указание всех поддиректорий в директории с исходными файлами (всегда в окончании прямой слеш)
subs := SCATS/ $(addprefix SCATS/, $(module_subs))
Expand All @@ -102,7 +102,7 @@
# API модуля
$(obj_path)scats.o : $(obj_path)scats_gen_m.o $(obj_path)scats_input_m.o \
$(obj_path)scats_visualize_m.o $(obj_path)scats_result_m.o \
$(obj_path)scats_do_m.o
$(obj_path)scats_do_m.o $(obj_path)prec_m.o

# Вспомогательная процедура генерации
$(obj_path)scats_generate_s.o : $(obj_path)scats.o
Expand All @@ -120,6 +120,12 @@
# Вспомогательная процедура для вычисления коррелограммы
$(obj_path)scats_calculate_correlogram_s.o : $(obj_path)scats.o

# Вспомогательная процедура для вычисления взвешенной коррелограммы
$(obj_path)scats_calculate_weighted_correlogram_s.o : $(obj_path)scats.o

# Вспомогательная процедура для вычисления сглаженной периодограммы
$(obj_path)scats_calculate_weighted_periodogram_s.o : $(obj_path)scats.o

# Визуализация
$(obj_path)scats_visualize_input_s.o : $(obj_path)scats_visualize_m.o
$(obj_path)scats_visualize_result_s.o : $(obj_path)scats_visualize_m.o
Expand Down Expand Up @@ -198,12 +204,14 @@
$(obj_path)scats_do_errors_m.o $(obj_path)scats_do_fft_m.o

$(obj_path)scats_do_periodogram_calculate_s.o : $(obj_path)scats_do_periodogram_m.o
$(obj_path)scats_do_periodogram_calculate_w_s.o : $(obj_path)scats_do_periodogram_m.o

# Вычисление коррелограммы
$(obj_path)scats_do_correlogram_m.o : $(obj_path)prec_m.o $(obj_path)scats_result_m.o \
$(obj_path)scats_do_errors_m.o $(obj_path)scats_do_fft_m.o

$(obj_path)scats_do_correlogram_calculate_s.o : $(obj_path)scats_do_correlogram_m.o
$(obj_path)scats_do_correlogram_calculate_w_s.o : $(obj_path)scats_do_correlogram_m.o

# Определение флагов компилятора

Expand Down
Loading

0 comments on commit 384d15a

Please sign in to comment.