Pragmastat 7.0.0

C#

Install from NuGet via .NET CLI:

dotnet add package Pragmastat --version 7.0.0

Install from NuGet via Package Manager Console:

NuGet\Install-Package Pragmastat -Version 7.0.0

Source code: https://github.com/AndreyAkinshin/pragmastat/tree/v7.0.0/cs

Pragmastat on NuGet: https://www.nuget.org/packages/Pragmastat/

Demo

using static System.Console;
using Pragmastat.Distributions;
using Pragmastat.Functions;
using Pragmastat.Randomization;

namespace Pragmastat.Demo;

class Program
{
  static void Main()
  {
    // --- Randomization ---

    var rng = new Rng("demo-uniform");
    WriteLine(rng.Uniform()); // 0.2640554428629759
    WriteLine(rng.Uniform()); // 0.9348534835582796

    rng = new Rng("demo-sample");
    WriteLine(string.Join(", ", rng.Sample([0.0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3))); // 3, 8, 9

    rng = new Rng("demo-shuffle");
    WriteLine(string.Join(", ", rng.Shuffle([1.0, 2, 3, 4, 5]))); // 4, 2, 3, 5, 1

    rng = new Rng("demo-resample");
    WriteLine(string.Join(", ", rng.Resample([1.0, 2, 3, 4, 5], 7))); // 5, 1, 1, 3, 3, 4, 5

    // --- Distribution Sampling ---

    rng = new Rng("demo-dist-uniform");
    IDistribution dist = new Uniform(0, 10);
    WriteLine(dist.Sample(rng)); // 6.54043657816832

    rng = new Rng("demo-dist-additive");
    dist = new Additive(0, 1);
    WriteLine(dist.Sample(rng)); // 0.17410448679568188

    rng = new Rng("demo-dist-exp");
    dist = new Exp(1);
    WriteLine(dist.Sample(rng)); // 0.6589065267276553

    rng = new Rng("demo-dist-power");
    dist = new Power(1, 2);
    WriteLine(dist.Sample(rng)); // 1.023677535537084

    rng = new Rng("demo-dist-multiplic");
    dist = new Multiplic(0, 1);
    WriteLine(dist.Sample(rng)); // 1.1273244602673853

    // --- Single-Sample Statistics ---

    var x = new Sample(1, 3, 5, 7, 9);

    WriteLine(Toolkit.Median(x)); // 5
    WriteLine(x.Center()); // 5
    WriteLine(x.Spread()); // 4
    WriteLine((x + 10).Spread()); // 4
    WriteLine((x * 2).Spread()); // 8
    WriteLine(x.RelSpread()); // 0.8

    // --- Two-Sample Comparison ---

    x = new Sample(0, 3, 6, 9, 12);
    var y = new Sample(0, 2, 4, 6, 8);

    WriteLine(Toolkit.Shift(x, y)); // 2
    WriteLine(Toolkit.Shift(y, x)); // -2
    WriteLine(Toolkit.AvgSpread(x, y)); // 5
    WriteLine(Toolkit.Disparity(x, y)); // 0.4
    WriteLine(Toolkit.Disparity(y, x)); // -0.4

    x = new Sample(1, 2, 4, 8, 16);
    y = new Sample(2, 4, 8, 16, 32);
    WriteLine(Toolkit.Ratio(x, y)); // 0.5
    WriteLine(Toolkit.Ratio(y, x)); // 2

    // --- One-Sample Bounds ---

    x = new Sample(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

    WriteLine(SignedRankMargin.Instance.Calc(10, 0.05)); // 18
    WriteLine(Toolkit.Center(x)); // 5.5
    WriteLine(Toolkit.CenterBounds(x, 0.05)); // [3.5, 7.5]

    // --- Two-Sample Bounds ---

    x = new Sample(
      1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
      16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30);
    y = new Sample(
      21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
      36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50);

    WriteLine(PairwiseMargin.Instance.Calc(30, 30, 1e-4)); // 390
    WriteLine(Toolkit.Shift(x, y)); // -20
    WriteLine(Toolkit.ShiftBounds(x, y, 1e-4)); // [-30, -10]

    x = new Sample(1, 2, 3, 4, 5);
    y = new Sample(2, 3, 4, 5, 6);
    WriteLine(Toolkit.RatioBounds(x, y, 0.05)); // [0.333..., 1.5]
  }
}

Showing the top 20 packages that depend on Pragmastat.

Packages Downloads
Perfolizer
Performance analysis toolkit
10
Perfolizer
Performance analysis toolkit
5
Perfolizer
Performance analysis toolkit
4
Perfolizer
Performance analysis toolkit
3

.NET 6.0

  • No dependencies.

.NET Standard 2.0

Version Downloads Last updated
7.0.0 1 02/09/2026
6.0.1 3 02/05/2026
6.0.0 3 02/03/2026
5.2.1 5 02/03/2026
5.2.0 5 02/02/2026
5.1.0 7 02/02/2026
5.0.0 8 01/31/2026
4.0.3 9 02/01/2026
4.0.2 8 01/31/2026
4.0.1 8 01/24/2026
4.0.0 8 01/24/2026
3.2.4 6 12/15/2025
3.2.3 7 12/15/2025
3.2.2 6 12/15/2025
3.2.1 6 12/13/2025
3.2.0 6 12/13/2025
3.1.33 6 12/13/2025
3.1.32 7 12/13/2025
3.1.30 6 12/13/2025
3.1.29 7 12/13/2025
3.1.28 6 12/13/2025
3.1.27 6 12/13/2025
3.1.26 5 12/13/2025
3.1.25 5 12/13/2025
3.1.24 5 12/13/2025
3.1.23 6 12/13/2025
3.1.22 7 12/13/2025
3.1.21 7 12/13/2025
3.1.20 6 12/13/2025
3.1.19 6 12/14/2025
3.1.18 6 12/13/2025
3.1.17 7 12/13/2025
3.1.16 5 01/17/2026
3.1.15 6 12/13/2025
3.1.14 7 12/13/2025
3.1.13 7 12/13/2025
3.1.12 6 12/13/2025
3.1.11 6 12/13/2025
3.1.10 5 01/16/2026
3.1.9 7 12/13/2025
3.1.8 7 12/13/2025
3.1.7 7 12/13/2025
3.1.6 7 12/13/2025
3.1.5 6 12/13/2025
3.1.4 6 12/13/2025
3.1.3 6 12/13/2025