Iir1.Net
1.0.0
dotnet add package Iir1.Net --version 1.0.0
NuGet\Install-Package Iir1.Net -Version 1.0.0
<PackageReference Include="Iir1.Net" Version="1.0.0" />
<PackageVersion Include="Iir1.Net" Version="1.0.0" />
<PackageReference Include="Iir1.Net" />
paket add Iir1.Net --version 1.0.0
#r "nuget: Iir1.Net, 1.0.0"
#:package Iir1.Net@1.0.0
#addin nuget:?package=Iir1.Net&version=1.0.0
#tool nuget:?package=Iir1.Net&version=1.0.0
Iir1.Net
Iir1.Net is a faithful C# port of Bernd Porr's iir1 digital IIR filter library. It provides Butterworth, Chebyshev I, Chebyshev II, custom-pole, and RBJ filters while preserving the native implementation's coefficients, state progression, and sample-by-sample behavior.
The port targets .NET Standard 2.1, .NET 8, and .NET 10. Its parity suite contains 45 native scenarios captured
independently with MSVC and GCC and runs 46 contract tests on both .NET 8 and .NET 10. Expected floating-point
differences between native toolchains are handled with a strict 1e-14 absolute-or-relative tolerance; results that are
bit-identical also pass directly. See Parity verification for the exact contract and regeneration
procedure.
Install
dotnet add package Iir1.Net --version 1.0.0
Use
using Iir.Butterworth;
var filter = new LowPass();
filter.Setup(sampleRate: 48_000, cutoffFrequency: 2_000);
double output = filter.Filter(inputSample);
Butterworth, Chebyshev, and custom filters use direct-form II state by default; RBJ filters preserve the upstream
direct-form I default. Generic filter types accept another ISectionState implementation when an application needs a
different realization. Setup accepts frequencies in hertz; SetupN accepts frequencies normalized to the sample rate.
Repository layout
srcis the source root for all solution projects.src/Iir1.Netcontains the package implementation.src/Iir1.Net.Testscontains managed parity and behavior tests plus committed native fixtures.src/Iir1.Net.Demois a minimal executable example.reference/iir1is the exact upstream source revision used for verification.tools/paritybuilds the native capture harness and regenerates fixtures.tools/packagevalidates and smoke-tests the package artifacts.
Build and test
Visual Studio 2022 or newer can open Iir1.Net.sln directly. The command-line equivalent is:
dotnet build Iir1.Net.sln -c Release
dotnet test src/Iir1.Net.Tests/Iir1.Net.Tests.csproj -c Release -f net8.0 --no-build
dotnet test src/Iir1.Net.Tests/Iir1.Net.Tests.csproj -c Release -f net10.0 --no-build
Initialize the pinned upstream source before regenerating parity data:
git submodule update --init --recursive
On Windows, tools/parity/scripts/regenerate-parity.ps1 prefers the installed Visual Studio C++ toolchain. The GCC
profile accepts an explicit g++.exe through -Compiler. On Linux, use tools/parity/scripts/regenerate-parity.sh.
Attribution and license
The managed port is MIT-licensed; see LICENSE. The original iir1 copyright and license are preserved in THIRD_PARTY_NOTICES.md and LICENSES/iir1-MIT.txt.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 98 | 7/22/2026 |