From 4b291d232e81174137501ffaefd9a7b17518e900 Mon Sep 17 00:00:00 2001 From: Infarh Date: Fri, 6 Jun 2025 21:59:38 +0300 Subject: [PATCH 1/3] =?UTF-8?q?xml-=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/copilot-instructions.md | 15 +++ MathCore.DSP.sln | 5 + MathCore.DSP.sln.DotSettings | 1 + .../Filters/Builders/BandPassBuilder.cs | 2 + .../Filters/Builders/BandStopBuilder.cs | 2 + .../Filters/Builders/ButterworthBuilder.cs | 102 +++++++---------- .../Filters/Builders/ChebyshevBuilder.cs | 103 +++++++----------- .../Filters/Builders/EllipticBuilder.cs | 102 +++++++---------- .../Filters/Builders/FrequencyPassType.cs | 5 + .../Filters/Builders/HighPassBuilder.cs | 37 +++++-- .../Filters/Builders/LowPassBuilder.cs | 50 +++++++++ MathCore.DSP/Filters/ChebyshevType.cs | 2 +- 12 files changed, 222 insertions(+), 204 deletions(-) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..4786551 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,15 @@ +Всегда отвечай мне используя русский язык. +Всегда пиши комментарии в коде на русском языке. +Комментарии к классам, структурам делегатам и перечислениям, а также к их членам всегда пиши в системном виде. +При написании комментариев (ели они короткие) в коде предпочитай размещение комментария в конце той же строке, что и сам комментируемый код. +Старайся избегать тривиальных комментариев. +При герерации кода старайся минимизировать количество фигурных скобок. +При генерации кода используй самые современные виды синтаксических конструкций языка. +Всегда старайся минимизировтаь размер кода если не запрошено иное. +Используй стиль именования локальных переменных snake_case. +Используй стиль именования входных переменных методов PascalCase. +Используй стиль именования полей классов _PascalCase для нестатических переменных и __PascalCase для статических переменных. +Ппредпочитай английский язык при именовании переменных, методов, классов и прочих сущностей. +При инициализации массивов, списков и словарей используй выражения инициализации массивов. +При объявлении переменных предпочитай использовать ключевое слово var. +При написании системных комментариев старайся писать их компактно в одну строку, если длина текста небольшая. \ No newline at end of file diff --git a/MathCore.DSP.sln b/MathCore.DSP.sln index 5f3a007..c2b7d28 100644 --- a/MathCore.DSP.sln +++ b/MathCore.DSP.sln @@ -23,6 +23,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfTest", "Tests\WpfTest\Wp EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks", "Tests\Benchmarks\Benchmarks.csproj", "{6E552E38-1B68-4DBD-9DAB-03FF2A0A4F06}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Service", ".Service", "{2507A7F8-E9DD-CD81-FF78-9340A71A364C}" + ProjectSection(SolutionItems) = preProject + .github\copilot-instructions.md = .github\copilot-instructions.md + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/MathCore.DSP.sln.DotSettings b/MathCore.DSP.sln.DotSettings index ca2c99e..9e2dae0 100644 --- a/MathCore.DSP.sln.DotSettings +++ b/MathCore.DSP.sln.DotSettings @@ -8,6 +8,7 @@ FT II PNG + RC True True True diff --git a/MathCore.DSP/Filters/Builders/BandPassBuilder.cs b/MathCore.DSP/Filters/Builders/BandPassBuilder.cs index 418f8d4..8c41bca 100644 --- a/MathCore.DSP/Filters/Builders/BandPassBuilder.cs +++ b/MathCore.DSP/Filters/Builders/BandPassBuilder.cs @@ -1,3 +1,5 @@ namespace MathCore.DSP.Filters.Builders; +/// Построитель полосно-пропускающего фильтра +/// Период дискретизации public readonly record struct BandPassBuilder(double dt); diff --git a/MathCore.DSP/Filters/Builders/BandStopBuilder.cs b/MathCore.DSP/Filters/Builders/BandStopBuilder.cs index d6254c0..656bab3 100644 --- a/MathCore.DSP/Filters/Builders/BandStopBuilder.cs +++ b/MathCore.DSP/Filters/Builders/BandStopBuilder.cs @@ -1,3 +1,5 @@ namespace MathCore.DSP.Filters.Builders; +/// Построитель полосно-задерживающего фильтра +/// Период дискретизации public readonly record struct BandStopBuilder(double dt); diff --git a/MathCore.DSP/Filters/Builders/ButterworthBuilder.cs b/MathCore.DSP/Filters/Builders/ButterworthBuilder.cs index 44ddcc5..238cb34 100644 --- a/MathCore.DSP/Filters/Builders/ButterworthBuilder.cs +++ b/MathCore.DSP/Filters/Builders/ButterworthBuilder.cs @@ -1,81 +1,53 @@ namespace MathCore.DSP.Filters.Builders; +/// Построитель фильтра Батерворта public readonly ref struct ButterworthBuilder { + /// Тип пропускания полосы частот public FrequencyPassType PassType { get; init; } + /// Период дискретизации фильтра public double dt { get; init; } + /// Частота дискретизации фильтра public double fd { get => 1 / dt; init => dt = 1 / value; } + /// Фильтр нижних частот public ButterworthBuilder LowPass => this with { PassType = FrequencyPassType.LowPass }; + + /// Фильтр верхних частот public ButterworthBuilder HighPass => this with { PassType = FrequencyPassType.HighPass }; + + /// Полосопропускающий фильтр public ButterworthBuilder BandPass => this with { PassType = FrequencyPassType.BandPass }; + + /// Полосозадерживающий фильтр public ButterworthBuilder BandStop => this with { PassType = FrequencyPassType.BandStop }; - private readonly double? _PassFrequency; - private readonly double? _StopFrequency; - private readonly double? _PassHighFrequency; - private readonly double? _StopHighFrequency; - - private readonly int? _Order; - - private readonly double? _Gp; - private readonly double? _Gs; - private readonly double? _Rp; - private readonly double? _Rs; - - public double? PassFrequency - { - get => _PassFrequency; - init => _PassFrequency = value; - } - - public double? StopFrequency - { - get => _StopFrequency; - init => _StopFrequency = value; - } - - public double? PassHighFrequency - { - get => _PassHighFrequency; - init => _PassHighFrequency = value; - } - - public double? StopHighFrequency - { - get => _StopHighFrequency; - init => _StopHighFrequency = value; - } - - public int? Order - { - get => _Order; - init => _Order = value; - } - - public double? Gp - { - get => _Gp; - init => _Gp = value; - } - - public double? Gs - { - get => _Gs; - init => _Gs = value; - } - - public double? Rp - { - get => _Rp; - init => _Rp = value; - } - - public double? Rs - { - get => _Rs; - init => _Rs = value; - } + /// Частота пропускания + public double? PassFrequency { get; init; } + + /// Частота заграждения + public double? StopFrequency { get; init; } + + /// Верхняя частота пропускания + public double? PassHighFrequency { get; init; } + + /// Верхняя частота заграждения + public double? StopHighFrequency { get; init; } + + /// Порядок фильтра + public int? Order { get; init; } + + /// Коэффициент пропускания + public double? Gp { get; init; } + + /// Коэффициент заграждения + public double? Gs { get; init; } + + /// Неравномерность в полосе пропускания + public double? Rp { get; init; } + + /// Неравномерность в полосе заграждения + public double? Rs { get; init; } } \ No newline at end of file diff --git a/MathCore.DSP/Filters/Builders/ChebyshevBuilder.cs b/MathCore.DSP/Filters/Builders/ChebyshevBuilder.cs index a49e028..f101259 100644 --- a/MathCore.DSP/Filters/Builders/ChebyshevBuilder.cs +++ b/MathCore.DSP/Filters/Builders/ChebyshevBuilder.cs @@ -1,83 +1,56 @@ namespace MathCore.DSP.Filters.Builders; +/// Строитель фильтров Чебышева public readonly ref struct ChebyshevBuilder { + /// Тип пропускания полосы частот public FrequencyPassType PassType { get; init; } + /// Период дискретизации public double dt { get; init; } + /// Частота дискретизации public double fd { get => 1 / dt; init => dt = 1 / value; } + /// Тип фильтра Чебышева public ChebyshevType Type { get; init; } + /// ФНЧ public ChebyshevBuilder LowPass => this with { PassType = FrequencyPassType.LowPass }; + + /// ФВЧ public ChebyshevBuilder HighPass => this with { PassType = FrequencyPassType.HighPass }; + + /// ППФ public ChebyshevBuilder BandPass => this with { PassType = FrequencyPassType.BandPass }; + + /// ПЗФ public ChebyshevBuilder BandStop => this with { PassType = FrequencyPassType.BandStop }; - private readonly double? _PassFrequency; - private readonly double? _StopFrequency; - private readonly double? _PassHighFrequency; - private readonly double? _StopHighFrequency; - - private readonly int? _Order; - - private readonly double? _Gp; - private readonly double? _Gs; - private readonly double? _Rp; - private readonly double? _Rs; - - public double? PassFrequency - { - get => _PassFrequency; - init => _PassFrequency = value; - } - - public double? StopFrequency - { - get => _StopFrequency; - init => _StopFrequency = value; - } - - public double? PassHighFrequency - { - get => _PassHighFrequency; - init => _PassHighFrequency = value; - } - - public double? StopHighFrequency - { - get => _StopHighFrequency; - init => _StopHighFrequency = value; - } - - public int? Order - { - get => _Order; - init => _Order = value; - } - - public double? Gp - { - get => _Gp; - init => _Gp = value; - } - - public double? Gs - { - get => _Gs; - init => _Gs = value; - } - - public double? Rp - { - get => _Rp; - init => _Rp = value; - } - - public double? Rs - { - get => _Rs; - init => _Rs = value; - } + /// Частота пропускания + public double? PassFrequency { get; init; } + + /// Частота заграждения + public double? StopFrequency { get; init; } + + /// Верхняя частота пропускания + public double? PassHighFrequency { get; init; } + + /// Верхняя частота заграждения + public double? StopHighFrequency { get; init; } + + /// Порядок фильтра + public int? Order { get; init; } + + /// Коэффициент передачи в полосе пропускания + public double? Gp { get; init; } + + /// Коэффициент передачи в полосе заграждения + public double? Gs { get; init; } + + /// Неравномерность в полосе пропускания (дБ) + public double? Rp { get; init; } + + /// Затухание в полосе заграждения (дБ) + public double? Rs { get; init; } } \ No newline at end of file diff --git a/MathCore.DSP/Filters/Builders/EllipticBuilder.cs b/MathCore.DSP/Filters/Builders/EllipticBuilder.cs index dc8d3aa..ebfd7fa 100644 --- a/MathCore.DSP/Filters/Builders/EllipticBuilder.cs +++ b/MathCore.DSP/Filters/Builders/EllipticBuilder.cs @@ -1,81 +1,53 @@ namespace MathCore.DSP.Filters.Builders; +/// Строитель эллиптических фильтров public readonly ref struct EllipticBuilder { + /// Тип пропускания полосы частот public FrequencyPassType PassType { get; init; } + /// Период дискретизации public double dt { get; init; } + /// Частота дискретизации public double fd { get => 1 / dt; init => dt = 1 / value; } + /// ФНЧ public EllipticBuilder LowPass => this with { PassType = FrequencyPassType.LowPass }; + + /// ФВЧ public EllipticBuilder HighPass => this with { PassType = FrequencyPassType.HighPass }; + + /// ППФ public EllipticBuilder BandPass => this with { PassType = FrequencyPassType.BandPass }; + + /// ПЗФ public EllipticBuilder BandStop => this with { PassType = FrequencyPassType.BandStop }; - private readonly double? _PassFrequency; - private readonly double? _StopFrequency; - private readonly double? _PassHighFrequency; - private readonly double? _StopHighFrequency; - - private readonly int? _Order; - - private readonly double? _Gp; - private readonly double? _Gs; - private readonly double? _Rp; - private readonly double? _Rs; - - public double? PassFrequency - { - get => _PassFrequency; - init => _PassFrequency = value; - } - - public double? StopFrequency - { - get => _StopFrequency; - init => _StopFrequency = value; - } - - public double? PassHighFrequency - { - get => _PassHighFrequency; - init => _PassHighFrequency = value; - } - - public double? StopHighFrequency - { - get => _StopHighFrequency; - init => _StopHighFrequency = value; - } - - public int? Order - { - get => _Order; - init => _Order = value; - } - - public double? Gp - { - get => _Gp; - init => _Gp = value; - } - - public double? Gs - { - get => _Gs; - init => _Gs = value; - } - - public double? Rp - { - get => _Rp; - init => _Rp = value; - } - - public double? Rs - { - get => _Rs; - init => _Rs = value; - } + /// Частота пропускания + public double? PassFrequency { get; init; } + + /// Частота заграждения + public double? StopFrequency { get; init; } + + /// Верхняя частота пропускания + public double? PassHighFrequency { get; init; } + + /// Верхняя частота заграждения + public double? StopHighFrequency { get; init; } + + /// Порядок фильтра + public int? Order { get; init; } + + /// Коэффициент передачи в полосе пропускания + public double? Gp { get; init; } + + /// Коэффициент передачи в полосе заграждения + public double? Gs { get; init; } + + /// Неравномерность в полосе пропускания (дБ) + public double? Rp { get; init; } + + /// Затухание в полосе заграждения (дБ) + public double? Rs { get; init; } } \ No newline at end of file diff --git a/MathCore.DSP/Filters/Builders/FrequencyPassType.cs b/MathCore.DSP/Filters/Builders/FrequencyPassType.cs index 6c3223b..949ab24 100644 --- a/MathCore.DSP/Filters/Builders/FrequencyPassType.cs +++ b/MathCore.DSP/Filters/Builders/FrequencyPassType.cs @@ -1,9 +1,14 @@ namespace MathCore.DSP.Filters.Builders; +/// Тип пропускания полосы частот public enum FrequencyPassType { + /// ФНЧ LowPass, + /// ФВЧ HighPass, + /// ППФ BandPass, + /// ПЗФ BandStop } \ No newline at end of file diff --git a/MathCore.DSP/Filters/Builders/HighPassBuilder.cs b/MathCore.DSP/Filters/Builders/HighPassBuilder.cs index 862f23b..c6d4903 100644 --- a/MathCore.DSP/Filters/Builders/HighPassBuilder.cs +++ b/MathCore.DSP/Filters/Builders/HighPassBuilder.cs @@ -1,29 +1,50 @@ namespace MathCore.DSP.Filters.Builders; +/// Строитель фильтров верхних частот +/// Период дискретизации public readonly record struct HighPassBuilder(double dt) { + /// Создать строитель фильтра Баттерворта верхних частот + /// Частота заграждения + /// Частота пропускания + /// Коэффициент передачи в полосе пропускания + /// Коэффициент передачи в полосе заграждения public HighPassButterworthBuilder Butterworth(double fs, double fp, double Gp, double Gs) => new(dt, fs, fp, Gp, Gs); + /// Создать строитель фильтра Чебышева верхних частот + /// Частота заграждения + /// Частота пропускания + /// Коэффициент передачи в полосе пропускания + /// Коэффициент передачи в полосе заграждения public HighPassChebyshevBuilder Chebyshev(double fs, double fp, double Gp, double Gs) => new(dt, fs, fp, Gp, Gs); } +/// Строитель фильтра Баттерворта верхних частот +/// Период дискретизации /// Частота заграждения +/// Частота заграждения +/// Частота пропускания +/// Коэффициент передачи в полосе пропускания +/// Коэффициент передачи в полосе заграждения public readonly record struct HighPassButterworthBuilder(double dt, double fs, double fp, double Gp, double Gs) { + /// Создать фильтр Баттерворта верхних частот public ButterworthHighPass Create() => new(dt, fp, fs, Gp, Gs); + /// Неявное преобразование в фильтр public static implicit operator Filter(HighPassButterworthBuilder builder) => builder.Create(); } +/// Строитель фильтра Чебышева верхних частот +/// Период дискретизации +/// Частота заграждения +/// Частота пропускания +/// Коэффициент передачи в полосе пропускания +/// Коэффициент передачи в полосе заграждения public readonly record struct HighPassChebyshevBuilder(double dt, double fs, double fp, double Gp, double Gs) { - public ChebyshevHighPass Create() => new(dt, fp, fs, Gp, Gs); + /// Создать фильтр Чебышева верхних частот + public ChebyshevHighPass Create() => new(dt, fs, fp, Gp, Gs); + /// Неявное преобразование в фильтр public static implicit operator Filter(HighPassChebyshevBuilder builder) => builder.Create(); } - -public readonly record struct HighPassEllipticBuilder(double dt, double fs, double fp, double Gp, double Gs) -{ - public EllipticHighPass Create() => new(dt, fp, fs, Gp, Gs); - - public static implicit operator Filter(HighPassEllipticBuilder builder) => builder.Create(); -} diff --git a/MathCore.DSP/Filters/Builders/LowPassBuilder.cs b/MathCore.DSP/Filters/Builders/LowPassBuilder.cs index 9933e0c..f995e11 100644 --- a/MathCore.DSP/Filters/Builders/LowPassBuilder.cs +++ b/MathCore.DSP/Filters/Builders/LowPassBuilder.cs @@ -1,48 +1,98 @@ namespace MathCore.DSP.Filters.Builders; +/// Строитель фильтров нижних частот +/// Период дискретизации public readonly record struct LowPassBuilder(double dt) { + /// Создать строитель фильтра Баттерворта нижних частот + /// Частота заграждения + /// Частота пропускания + /// Коэффициент передачи в полосе пропускания + /// Коэффициент передачи в полосе заграждения public LowPassButterworthBuilder Butterworth(double fs, double fp, double Gp, double Gs) => new(dt, fs, fp, Gp, Gs); + /// Создать строитель фильтра Чебышева нижних частот + /// Частота заграждения + /// Частота пропускания + /// Коэффициент передачи в полосе пропускания + /// Коэффициент передачи в полосе заграждения public LowPassChebyshevBuilder Chebyshev(double fs, double fp, double Gp, double Gs) => new(dt, fs, fp, Gp, Gs); + /// Создать строитель RC-фильтра нижних частот + /// Частота среза public LowPassRCBuilder RC(double f0) => new(dt, f0); + /// Создать строитель RC-фильтра нижних частот с экспоненциальной аппроксимацией + /// Частота среза public LowPassRCExponentialBuilder RCExponential(double f0) => new(dt, f0); } +/// Строитель фильтра Баттерворта нижних частот +/// Период дискретизации +/// Частота заграждения +/// Частота пропускания +/// Коэффициент передачи в полосе пропускания +/// Коэффициент передачи в полосе заграждения public readonly record struct LowPassButterworthBuilder(double dt, double fs, double fp, double Gp, double Gs) { + /// Создать фильтр Баттерворта нижних частот public ButterworthLowPass Create() => new(dt, fp, fs, Gp, Gs); + /// Неявное преобразование в фильтр public static implicit operator Filter(LowPassButterworthBuilder builder) => builder.Create(); } +/// Строитель фильтра Чебышева нижних частот +/// Период дискретизации +/// Частота заграждения +/// Частота пропускания +/// Коэффициент передачи в полосе пропускания +/// Коэффициент передачи в полосе заграждения public readonly record struct LowPassChebyshevBuilder(double dt, double fs, double fp, double Gp, double Gs) { + /// Создать фильтр Чебышева нижних частот public ChebyshevLowPass Create() => new(dt, fp, fs, Gp, Gs); + /// Неявное преобразование в фильтр public static implicit operator Filter(LowPassChebyshevBuilder builder) => builder.Create(); } +/// Строитель эллиптического фильтра нижних частот +/// Период дискретизации +/// Частота заграждения +/// Частота пропускания +/// Коэффициент передачи в полосе пропускания +/// Коэффициент передачи в полосе заграждения public readonly record struct LowPassEllipticBuilder(double dt, double fs, double fp, double Gp, double Gs) { + /// Создать эллиптический фильтр нижних частот public EllipticLowPass Create() => new(dt, fp, fs, Gp, Gs); + /// Неявное преобразование в фильтр public static implicit operator Filter(LowPassEllipticBuilder builder) => builder.Create(); } +/// Строитель RC-фильтра нижних частот +/// Период дискретизации +/// Частота среза public readonly record struct LowPassRCBuilder(double dt, double f0) { + /// Создать RC-фильтр нижних частот public RCLowPass Create() => new(dt, f0); + /// Неявное преобразование в фильтр public static implicit operator Filter(LowPassRCBuilder builder) => builder.Create(); } +/// Строитель RC-фильтра нижних частот с экспоненциальной аппроксимацией +/// Период дискретизации +/// Частота среза public readonly record struct LowPassRCExponentialBuilder(double dt, double f0) { + /// Создать RC-фильтр нижних частот с экспоненциальной аппроксимацией public RCExponentialLowPass Create() => new(dt, f0); + /// Неявное преобразование в фильтр public static implicit operator Filter(LowPassRCExponentialBuilder builder) => builder.Create(); } diff --git a/MathCore.DSP/Filters/ChebyshevType.cs b/MathCore.DSP/Filters/ChebyshevType.cs index 7209f01..849d11a 100644 --- a/MathCore.DSP/Filters/ChebyshevType.cs +++ b/MathCore.DSP/Filters/ChebyshevType.cs @@ -7,6 +7,6 @@ public enum ChebyshevType : byte I, /// Фильтр Чебышева второго рода, подавляющий верхнюю область частот (выше fp) II, - /// Фильтр Чебышева второго рода c коррекцией частотного диапазона, подавляющий верхнюю область частот (выше fs) + /// Фильтр Чебышева второго рода с коррекцией частотного диапазона, подавляющий верхнюю область частот (выше fs) IICorrected } \ No newline at end of file From 6a32d9e215741ab6753fe84d6e0e151acc2db953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB?= Date: Wed, 11 Jun 2025 17:03:10 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В проекте `MathCore.DSP.csproj` обновлены версии пакетов: `MathCore` с 0.0.93.1 до 0.0.93.2, `System.Memory` с 4.6.0 до 4.6.3, `System.Numerics.Vectors` с 4.6.0 до 4.6.1. В проекте `Benchmarks.csproj` обновлена версия пакета `BenchmarkDotNet` с 0.14.0 до 0.15.1. В проекте `MathCore.DSP.Tests.csproj` обновлены версии пакетов: `Microsoft.NET.Test.Sdk` с 17.12.0 до 17.14.1, `MSTest.TestAdapter` и `MSTest.TestFramework` с 3.7.3 до 3.9.2. В проекте `WpfTest.csproj` обновлены версии пакетов: `MathCore.Hosting.WPF` с 0.0.14 до 0.0.14.1 и `Microsoft.Extensions.Hosting` с 9.0.1 до 9.0.6. --- MathCore.DSP/MathCore.DSP.csproj | 6 +++--- Tests/Benchmarks/Benchmarks.csproj | 2 +- Tests/MathCore.DSP.Tests/MathCore.DSP.Tests.csproj | 6 +++--- Tests/WpfTest/WpfTest.csproj | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MathCore.DSP/MathCore.DSP.csproj b/MathCore.DSP/MathCore.DSP.csproj index b4847ed..3ca55cd 100644 --- a/MathCore.DSP/MathCore.DSP.csproj +++ b/MathCore.DSP/MathCore.DSP.csproj @@ -52,9 +52,9 @@ - - - + + + diff --git a/Tests/Benchmarks/Benchmarks.csproj b/Tests/Benchmarks/Benchmarks.csproj index 0bfd684..aec5e65 100644 --- a/Tests/Benchmarks/Benchmarks.csproj +++ b/Tests/Benchmarks/Benchmarks.csproj @@ -18,7 +18,7 @@ - + diff --git a/Tests/MathCore.DSP.Tests/MathCore.DSP.Tests.csproj b/Tests/MathCore.DSP.Tests/MathCore.DSP.Tests.csproj index 1a3b1fb..7607299 100644 --- a/Tests/MathCore.DSP.Tests/MathCore.DSP.Tests.csproj +++ b/Tests/MathCore.DSP.Tests/MathCore.DSP.Tests.csproj @@ -26,9 +26,9 @@ - - - + + + diff --git a/Tests/WpfTest/WpfTest.csproj b/Tests/WpfTest/WpfTest.csproj index 03541d3..2f31b15 100644 --- a/Tests/WpfTest/WpfTest.csproj +++ b/Tests/WpfTest/WpfTest.csproj @@ -9,8 +9,8 @@ - - + + From 7848708b57465a010171987ffeb0c69fa708d496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B0=D0=B2=D0=B5=D0=BB?= Date: Wed, 11 Jun 2025 17:03:39 +0300 Subject: [PATCH 3/3] =?UTF-8?q?v0.0.14.2=20-=20=D0=9E=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MathCore.DSP/MathCore.DSP.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MathCore.DSP/MathCore.DSP.csproj b/MathCore.DSP/MathCore.DSP.csproj index 3ca55cd..bed790e 100644 --- a/MathCore.DSP/MathCore.DSP.csproj +++ b/MathCore.DSP/MathCore.DSP.csproj @@ -8,7 +8,7 @@ false preview - 0.0.14.1 + 0.0.14.2 enable Обновление пакетов