std::fisher_f_distribution - cppreference.com (2024)

< cpp‎ | numeric‎ | random

C++

Compiler support
Freestanding and hosted
Language
Standard library
Standard library headers
Named requirements
Feature test macros (C++20)
Language support library
Concepts library (C++20)
Metaprogramming library (C++11)
Diagnostics library
General utilities library
Strings library
Containers library
Iterators library
Ranges library (C++20)
Algorithms library
Numerics library
Localizations library
Input/output library
Filesystem library (C++17)
Regular expressions library (C++11)
Concurrency support library (C++11)
Technical specifications
Symbols index
External libraries

Numerics library

Common mathematical functions
Mathematical special functions (C++17)
Mathematical constants (C++20)
Floating-point environment (C++11)
Complex numbers
Numeric arrays
Pseudo-random number generation
Factor operations

gcd

(C++17)

lcm

(C++17)

Interpolations

midpoint

(C++20)

lerp

(C++20)

Generic numeric operations

iota

(C++11)

ranges::iota

(C++23)

accumulate

inner_product

adjacent_difference

partial_sum

reduce

(C++17)

transform_reduce

(C++17)

inclusive_scan

(C++17)

exclusive_scan

(C++17)

transform_inclusive_scan

(C++17)

transform_exclusive_scan

(C++17)

Bit operations

bit_cast

(C++20)

byteswap

(C++23)

has_single_bit

(C++20)

bit_ceil

(C++20)

bit_floor

(C++20)

bit_width

(C++20)

rotl

(C++20)

rotr

(C++20)

countl_zero

(C++20)

countl_one

(C++20)

countr_zero

(C++20)

countr_one

(C++20)

popcount

(C++20)

endian

(C++20)

Pseudo-random number generation

Uniform random bit generators

uniform_random_bit_generator

(C++20)

Engines and engine adaptors

linear_congruential_engine

(C++11)

mersenne_twister_engine

(C++11)

subtract_with_carry_engine

(C++11)

discard_block_engine

(C++11)

independent_bits_engine

(C++11)

shuffle_order_engine

(C++11)

Non-deterministic generator

random_device

(C++11)

Distributions
Uniform distributions

uniform_int_distribution

(C++11)

uniform_real_distribution

(C++11)

generate_canonical

(C++11)

Bernoulli distributions

bernoulli_distribution

(C++11)

binomial_distribution

(C++11)

negative_binomial_distribution

(C++11)

geometric_distribution

(C++11)

Poisson distributions

poisson_distribution

(C++11)

exponential_distribution

(C++11)

gamma_distribution

(C++11)

weibull_distribution

(C++11)

extreme_value_distribution

(C++11)

Normal distributions

normal_distribution

(C++11)

lognormal_distribution

(C++11)

chi_squared_distribution

(C++11)

cauchy_distribution

(C++11)

fisher_f_distribution

(C++11)

student_t_distribution

(C++11)

Sampling distributions

discrete_distribution

(C++11)

piecewise_constant_distribution

(C++11)

piecewise_linear_distribution

(C++11)

Seed Sequences

seed_seq

(C++11)

C library

rand

srand

RAND_MAX

std::fisher_f_distribution

Member functions

fisher_f_distribution::fisher_f_distribution

(C++11)

fisher_f_distribution::reset

(C++11)

Generation

fisher_f_distribution::operator()

(C++11)

Characteristics

fisher_f_distribution::mfisher_f_distribution::n

(C++11)(C++11)

fisher_f_distribution::param

(C++11)

fisher_f_distribution::min

(C++11)

fisher_f_distribution::max

(C++11)

Non-member functions

operator==operator!=

(C++11)(C++11)(until C++20)

operator<<operator>>

(C++11)(C++11)

Defined in header <random>

template<

class RealType = double

> class fisher_f_distribution;

(since C++11)

Produces random numbers according to the F-distribution:

P(x;m,n) =
Γ((m+n)/2)
Γ(m/2) Γ(n/2)
(m/n)m/2
x(m/2)-1
(1+
mx
n
)-(m+n)/2

m and n are the degrees of freedom.

std::fisher_f_distribution satisfies all requirements of RandomNumberDistribution.

Contents

  • 1 Template parameters
  • 2 Member types
  • 3 Member functions
    • 3.1 Generation
    • 3.2 Characteristics
  • 4 Non-member functions
  • 5 Example
  • 6 External links

[edit] Template parameters

RealType - The result type generated by the generator. The effect is undefined if this is not one of float, double, or long double.

[edit] Member types

Member type Definition
result_type (C++11) RealType
param_type (C++11) the type of the parameter set, see RandomNumberDistribution.

[edit] Member functions

(constructor)

(C++11)

constructs new distribution
(public member function) [edit]

reset

(C++11)

resets the internal state of the distribution
(public member function) [edit]
Generation

operator()

(C++11)

generates the next random number in the distribution
(public member function) [edit]
Characteristics

mn

(C++11)

returns the distribution parameters
(public member function) [edit]

param

(C++11)

gets or sets the distribution parameter object
(public member function) [edit]

min

(C++11)

returns the minimum potentially generated value
(public member function) [edit]

max

(C++11)

returns the maximum potentially generated value
(public member function) [edit]

[edit] Non-member functions

operator==operator!=

(C++11)(C++11)(removed in C++20)

compares two distribution objects
(function) [edit]

operator<<operator>>

(C++11)

performs stream input and output on pseudo-random number distribution
(function template) [edit]

[edit] Example

Run this code

#include <random>#include <iomanip>#include <map> #include <algorithm>#include <iostream>#include <vector>#include <cmath>template <int Height = 5, int BarWidth = 1, int Padding = 1, int Offset = 0, class Seq>void draw_vbars(Seq&& s, const bool DrawMinMax = true){ static_assert(0 < Height and 0 < BarWidth and 0 <= Padding and 0 <= Offset); auto cout_n = [](auto&& v, int n = 1) { while (n-- > 0) std::cout << v; }; const auto [min, max] = std::minmax_element(std::cbegin(s), std::cend(s)); std::vector<std::div_t> qr; for (typedef decltype(*cbegin(s)) V; V e : s) qr.push_back(std::div(std::lerp(V(0), 8 * Height, (e - *min)/(*max - *min)), 8)); for (auto h{Height}; h-- > 0; cout_n('\n')) { cout_n(' ', Offset); for (auto dv : qr) { const auto q{dv.quot}, r{dv.rem}; unsigned char d[] { 0xe2, 0x96, 0x88, 0 }; // Full Block: '█' q < h ? d[0] = ' ', d[1] = 0 : q == h ? d[2] -= (7 - r) : 0; cout_n(d, BarWidth), cout_n(' ', Padding); } if (DrawMinMax && Height > 1) Height - 1 == h ? std::cout << "┬ " << *max: h ? std::cout << "│ " : std::cout << "┴ " << *min; }}int main(){ std::random_device rd{}; std::mt19937 gen{rd()}; auto fisher = [&gen](const float d1, const float d2) { std::fisher_f_distribution<float> d{ d1 /* m */, d2 /* n */}; const int norm = 1'00'00; const float cutoff = 0.002f; std::map<int, int> hist{}; for (int n = 0; n != norm; ++n) ++hist[std::round(d(gen))]; std::vector<float> bars; std::vector<int> indices; for (auto const& [n, p] : hist) { if (float x = p * (1.0/norm); cutoff < x) { bars.push_back(x); indices.push_back(n); } } std::cout << "d₁ = " << d1 << ", d₂ = " << d2 << ":\n"; for (draw_vbars<4, 3>(bars); int n : indices) std::cout << "" << std::setw(2) << n << " "; std::cout << "\n\n"; }; fisher(/* d₁ = */ 1.0f, /* d₂ = */ 5.0f); fisher(/* d₁ = */ 15.0f, /* d₂ = */ 10.f); fisher(/* d₁ = */ 100.0f, /* d₂ = */ 3.0f);}

Possible output:

d₁ = 1, d₂ = 5:███ ┬ 0.4956███ │███ ▇▇▇ │███ ███ ▇▇▇ ▄▄▄ ▂▂▂ ▂▂▂ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ┴ 0.0021 0 1 2 3 4 5 6 7 8 9 10 11 12 14d₁ = 15, d₂ = 10: ███ ┬ 0.6252 ███ │ ███ ▂▂▂ │▆▆▆ ███ ███ ▃▃▃ ▁▁▁ ▁▁▁ ▁▁▁ ┴ 0.0023 0 1 2 3 4 5 6d₁ = 100, d₂ = 3: ███ ┬ 0.4589 ███ │▁▁▁ ███ ▅▅▅ │███ ███ ███ ▆▆▆ ▃▃▃ ▂▂▂ ▂▂▂ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ┴ 0.0021 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

[edit] External links

Weisstein, Eric W. "F-Distribution." From MathWorld — A Wolfram Web Resource.

std::fisher_f_distribution - cppreference.com (2024)
Top Articles
ADMINISTRATIVE ASSISTANT II (Facilities and Planning) at Elk Grove Unified School District
9539 Castleshore Way, Elk Grove, CA 95758 | Compass
Craigslist Livingston Montana
Combat level
Blanchard St Denis Funeral Home Obituaries
Georgia Vehicle Registration Fees Calculator
Konkurrenz für Kioske: 7-Eleven will Minisupermärkte in Deutschland etablieren
Miles City Montana Craigslist
Cvs Devoted Catalog
State Of Illinois Comptroller Salary Database
FIX: Spacebar, Enter, or Backspace Not Working
Voyeuragency
6th gen chevy camaro forumCamaro ZL1 Z28 SS LT Camaro forums, news, blog, reviews, wallpapers, pricing – Camaro5.com
WWE-Heldin Nikki A.S.H. verzückt Fans und Kollegen
Nalley Tartar Sauce
Apus.edu Login
Char-Em Isd
Idaho Harvest Statistics
Second Chance Maryland Lottery
Missed Connections Dayton Ohio
Ukc Message Board
Kountry Pumpkin 29
Van Buren County Arrests.org
Unforeseen Drama: The Tower of Terror’s Mysterious Closure at Walt Disney World
Lola Bunny R34 Gif
Cbssports Rankings
Woodmont Place At Palmer Resident Portal
Sec Baseball Tournament Score
Caring Hearts For Canines Aberdeen Nc
Strange World Showtimes Near Savoy 16
Evil Dead Rise Showtimes Near Sierra Vista Cinemas 16
Askhistorians Book List
Motor Mounts
Poe T4 Aisling
Transformers Movie Wiki
Miss America Voy Board
1987 Monte Carlo Ss For Sale Craigslist
Amici Pizza Los Alamitos
Gwu Apps
Laurin Funeral Home | Buried In Work
Sinai Sdn 2023
Citibank Branch Locations In Orlando Florida
Live Delta Flight Status - FlightAware
Executive Lounge - Alle Informationen zu der Lounge | reisetopia Basics
Levi Ackerman Tattoo Ideas
Oakley Rae (Social Media Star) – Bio, Net Worth, Career, Age, Height, And More
Blippi Park Carlsbad
El Patron Menu Bardstown Ky
Diamond Desires Nyc
Tommy Gold Lpsg
Where To Find Mega Ring In Pokemon Radical Red
Latest Posts
Article information

Author: Kieth Sipes

Last Updated:

Views: 5559

Rating: 4.7 / 5 (47 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Kieth Sipes

Birthday: 2001-04-14

Address: Suite 492 62479 Champlin Loop, South Catrice, MS 57271

Phone: +9663362133320

Job: District Sales Analyst

Hobby: Digital arts, Dance, Ghost hunting, Worldbuilding, Kayaking, Table tennis, 3D printing

Introduction: My name is Kieth Sipes, I am a zany, rich, courageous, powerful, faithful, jolly, excited person who loves writing and wants to share my knowledge and understanding with you.