From 9b02d666850d18756b26161b500657425a1e37b8 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 9 Apr 2024 01:09:17 +0200 Subject: [PATCH 01/29] Intermediate solution --- Cargo.toml | 2 + assets/bernoulli.png | Bin 0 -> 14538 bytes assets/chi_squared.png | Bin 0 -> 41303 bytes assets/poisson.png | Bin 0 -> 45581 bytes assets/standard_normal.png | Bin 0 -> 36110 bytes diagrams/src/main.py | 322 +++++++++++++++++++++++++++++++++ diagrams/src/requirements.txt | 3 + src/distributions/bernoulli.rs | 9 + 8 files changed, 336 insertions(+) create mode 100644 assets/bernoulli.png create mode 100644 assets/chi_squared.png create mode 100644 assets/poisson.png create mode 100644 assets/standard_normal.png create mode 100644 diagrams/src/main.py create mode 100644 diagrams/src/requirements.txt diff --git a/Cargo.toml b/Cargo.toml index 6c7ce73f66..d6b8423b82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,7 @@ features = ["small_rng", "serde1"] default = ["std", "std_rng", "getrandom"] nightly = [] # some additions requiring nightly Rust serde1 = ["serde", "rand_core/serde1"] +doc-images = ["embed-doc-image"] # Option (enabled by default): without "std" rand uses libcore; this option # enables functionality expected to be available on a standard platform. @@ -70,6 +71,7 @@ log = { version = "0.4.4", optional = true } serde = { version = "1.0.103", features = ["derive"], optional = true } rand_chacha = { path = "rand_chacha", version = "=0.9.0-alpha.1", default-features = false, optional = true } zerocopy = { version = "=0.8.0-alpha.6", default-features = false, features = ["simd"] } +embed-doc-image = { version = "0.1.4", optional = true } [dev-dependencies] rand_pcg = { path = "rand_pcg", version = "=0.9.0-alpha.1" } diff --git a/assets/bernoulli.png b/assets/bernoulli.png new file mode 100644 index 0000000000000000000000000000000000000000..bc0f99c98620e6f9687453d03f7b1bdcfea70402 GIT binary patch literal 14538 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 literal 0 HcmV?d00001 diff --git a/assets/chi_squared.png b/assets/chi_squared.png new file mode 100644 index 0000000000000000000000000000000000000000..b911435c75d5a34b9e4c2ca24eb6080d2f1db449 GIT binary patch literal 41303 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 literal 0 HcmV?d00001 diff --git a/assets/poisson.png b/assets/poisson.png new file mode 100644 index 0000000000000000000000000000000000000000..0a7d4878f04719f79dd6008801be2dd0cb865a8d GIT binary patch literal 45581 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 Pfj{?URb_IejlKU1i)NYk literal 0 HcmV?d00001 diff --git a/assets/standard_normal.png b/assets/standard_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8de210c9ad79f8ddc1e7aa3495edd6bebdf2a1 GIT binary patch literal 36110 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

B(Hb8^)^dKcW%(@dNNd3%33@Zd`z;kBbOhyQT_b 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�t6P1DWsz;C4_*ObJq*NK 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 1.0] = np.nan + return y + # Degrees of freedom for the distribution + df_values = [1, 2, 3, 5, 9] + # Possible values for the distribution + x = np.linspace(0, 10, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of the degrees of freedom + for df in df_values: + ax.plot(x, y(x, df), label=f'df = {df}') + + # Adding title and labels + ax.set_title('Chi-squared distribution') + ax.set_xlabel('Chi-squared statistic') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/chi_squared.{EXT}") + plt.close() + + +def bernoulli(): + # Defining the Bernoulli distribution PMF + def y(p): + return np.array([1 - p, p]) + + # Possible values of p for the distribution + p_values = [0.1, 0.5, 0.9] + # Possible outcomes for a Bernoulli distributed variable + outcomes = np.array([0, 1]) + + # Creating the figure and the axis + fig, ax = plt.subplots() + # Width of each bar + width = 0.2 + + # Plotting the PMF for each value of p + for i, p in enumerate(p_values): + ax.bar(outcomes - width / 2 + i * width - 0.1, y(p), width=width, label=f'p = {p}') + + # Adding title and labels + ax.set_title('Bernoulli distribution') + ax.set_xlabel('Outcome') + ax.set_ylabel('Probability') + ax.set_xticks(outcomes) # set the ticks to be the outcome values + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/bernoulli.{EXT}") + plt.close() + + +def binomial(): + # Defining the Binomial distribution PMF + def y(n, p, k): + from scipy.stats import binom + return binom.pmf(k, n, p) + + # Possible values of n for the distribution + n_values = [5, 10, 20] + # Possible values of p for the distribution + p_values = [0.1, 0.5, 0.9] + # Possible outcomes for a Binomial distributed variable + outcomes = np.arange(0, 15) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PMF for each value of n and p + for i, n in enumerate(n_values): + for j, p in enumerate(p_values): + ax.plot(outcomes, y(n, p, outcomes), 'o-', label=f'n = {n}, p = {p}') + + # Adding title and labels + ax.set_title('Binomial distribution') + ax.set_xlabel('Outcome') + ax.set_ylabel('Probability') + ax.set_xticks(outcomes) # set the ticks to be the outcome values + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/binomial.{EXT}") + plt.close() + + +def cauchy(): + # Possible values for the distribution + x = np.linspace(-10, 10, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for the standard normal distribution + ax.plot(x, 1 / (np.pi * (1 + x**2)), label='Cauchy') + + # Adding title and labels + ax.set_title('Cauchy distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/cauchy.{EXT}") + plt.close() + + +def dirichlet(): + # Defining the Dirichlet distribution PDF + def y(alpha, x): + from scipy.stats import dirichlet + return dirichlet.pdf(x, alpha) + + # Possible values of alpha for the distribution + alpha_values = [[1, 1, 1], [2, 2, 2], [0.5, 0.5, 0.5]] + # Possible values for the distribution + x_values = [np.random.dirichlet(alpha, size=1000) for alpha in alpha_values] + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of alpha + for alpha, x in zip(alpha_values, x_values): + ax.plot(x, y(alpha, x), label=f'α = {alpha}') + + # Adding title and labels + ax.set_title('Dirichlet distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/dirichlet.{EXT}") + plt.close() + + +def exponential(): + # Defining the Exponential distribution PDF + def y(lmbda, x): + from scipy.stats import expon + return expon.pdf(x, scale=1 / lmbda) + + # Possible values of lambda for the distribution + lambda_values = [0.5, 1, 2] + # Possible values for the distribution + x = np.linspace(0, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of lambda + for lmbda in lambda_values: + ax.plot(x, y(lmbda, x), label=f'λ = {lmbda}') + + # Adding title and labels + ax.set_title('Exponential distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/exponential.{EXT}") + plt.close() + + +def gamma(): + # Defining the Gamma distribution PDF + def y(alpha, beta, x): + from scipy.stats import gamma + return gamma.pdf(x, alpha, scale=1 / beta) + + # Possible values of alpha for the distribution + alpha_values = [1, 2, 3] + # Possible values of beta for the distribution + beta_values = [0.5, 1, 2] + # Possible values for the distribution + x = np.linspace(0, 10, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of alpha and beta + for alpha in alpha_values: + for beta in beta_values: + ax.plot(x, y(alpha, beta, x), label=f'α = {alpha}, β = {beta}') + + # Adding title and labels + ax.set_title('Gamma distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/gamma.{EXT}") + plt.close() + + +def poisson(): + # Defining the Poisson distribution PMF + def y(lmbda, k): + from scipy.stats import poisson + return poisson.pmf(k, lmbda) + + # Possible values of lambda for the distribution + lambda_values = [0.5, 1, 2, 4, 10] + # Possible outcomes for a Poisson distributed variable + outcomes = np.arange(0, 15) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PMF for each value of lambda + for i, lmbda in enumerate(lambda_values): + ax.plot(outcomes, y(lmbda, outcomes), 'o-', label=f'λ = {lmbda}') + + # Adding title and labels + ax.set_title('Poisson distribution') + ax.set_xlabel('Outcome') + ax.set_ylabel('Probability') + ax.set_xticks(outcomes) # set the ticks to be the outcome values + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/poisson.{EXT}") + plt.close() + + +def weibull(): + # Defining the Frechet distribution PDF + def y(alpha, x): + from scipy.stats import weibull_min + return weibull_min.pdf(x, alpha) + + # Possible values of alpha for the distribution + alpha_values = [0.5, 1, 2] + # Possible values for the distribution + x = np.linspace(0, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of alpha + for alpha in alpha_values: + ax.plot(x, y(alpha, x), label=f'α = {alpha}') + + # Adding title and labels + ax.set_title('Frechet distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/frechet.{EXT}") + plt.close() + + +if __name__ == "__main__": + # Recursively delete the output directory + for root, dirs, files in os.walk(OUT, topdown=False): + for file in files: + os.remove(os.path.join(root, file)) + for dir in dirs: + os.rmdir(os.path.join(root, dir)) + standard_normal() + bernoulli() + chi_squared() + binomial() + cauchy() + dirichlet() + exponential() + gamma() + poisson() + weibull() diff --git a/diagrams/src/requirements.txt b/diagrams/src/requirements.txt new file mode 100644 index 0000000000..f1161d4889 --- /dev/null +++ b/diagrams/src/requirements.txt @@ -0,0 +1,3 @@ +numpy==1.26.4 +matplotlib==3.8.4 +scipy==1.13.0 \ No newline at end of file diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index d72620ea7c..d8547dc7f6 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -34,6 +34,15 @@ use serde::{Serialize, Deserialize}; /// This `Bernoulli` distribution uses 64 bits from the RNG (a `u64`), /// so only probabilities that are multiples of 2-64 can be /// represented. +/// +/// # Diagram +/// +/// The diagram below shows the Bernoulli distribution with `p = 0.3`. +///

+/// Bernoulli distribution with p = 0.3 +///
+/// +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_doc_image("diagram", "assets/bernoulli.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Bernoulli { From 2ea1da39736954852fd1cc5604b2ecc509776c78 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 9 Apr 2024 18:41:56 +0200 Subject: [PATCH 02/29] First few diagrams added --- assets/chi_squared.png | Bin 41303 -> 0 bytes assets/poisson.png | Bin 45581 -> 0 bytes assets/standard_normal.png | Bin 36110 -> 0 bytes diagrams/src/main.py | 135 ++++++++++++++++++++------------- rand_distr/Cargo.toml | 2 + rand_distr/assets/binomial.png | Bin 0 -> 19216 bytes rand_distr/assets/cauchy.png | Bin 0 -> 42392 bytes rand_distr/src/binomial.rs | 8 ++ rand_distr/src/cauchy.rs | 7 ++ src/distributions/bernoulli.rs | 9 +-- 10 files changed, 102 insertions(+), 59 deletions(-) delete mode 100644 assets/chi_squared.png delete mode 100644 assets/poisson.png delete mode 100644 assets/standard_normal.png create mode 100644 rand_distr/assets/binomial.png create mode 100644 rand_distr/assets/cauchy.png diff --git a/assets/chi_squared.png b/assets/chi_squared.png deleted file mode 100644 index b911435c75d5a34b9e4c2ca24eb6080d2f1db449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41303 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 diff --git a/assets/poisson.png b/assets/poisson.png deleted file mode 100644 index 0a7d4878f04719f79dd6008801be2dd0cb865a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45581 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 Pfj{?URb_IejlKU1i)NYk diff --git a/assets/standard_normal.png b/assets/standard_normal.png deleted file mode 100644 index 0d8de210c9ad79f8ddc1e7aa3495edd6bebdf2a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36110 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

B(Hb8^)^dKcW%(@dNNd3%33@Zd`z;kBbOhyQT_b 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�t6P1DWsz;C4_*ObJq*NK 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 0) + # Prepare the probability density function (PDF) array + PDF = np.zeros(X.shape).flatten() + + # Calculate PDF only for valid points + if np.any(valid): + from scipy.stats import dirichlet + # The 3rd coordinate for the Dirichlet distribution + Z_valid = Z.flatten()[valid] + # Stack the coordinates for the distribution input + XYZ_valid = np.vstack((XY[:, valid], Z_valid)) + # Calculate the Dirichlet PDF + PDF[valid] = dirichlet.pdf(XYZ_valid.T, alpha) + + # Reshape PDF back into the 2D shape of the grid + PDF = PDF.reshape(X.shape) + + # Create a contour plot on the provided axis + contour = ax.contourf(X, Y, PDF, levels=15, cmap='Blues') + # Add a colorbar + plt.colorbar(contour, ax=ax, pad=0.05, aspect=10) + # Set limits and labels + ax.set_xlim(0, 1) + ax.set_ylim(0, 1) + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_xlabel(r'$x_1$', fontsize=12) + ax.set_ylabel(r'$x_2$', fontsize=12) + # Set title for the subplot + ax.set_title(r'$\alpha = {}$'.format(alpha), fontsize=14) + + # Define alpha parameters for the Dirichlet distributions to be plotted + alpha_params = [ + (1.5, 1.5, 1.5), + (5.0, 5.0, 5.0), + (1.0, 2.0, 2.0), + (2.0, 4.0, 8.0) + ] + + # Create a figure with subplots + fig, axes = plt.subplots(2, 2, figsize=(10, 8)) + + # Loop through the list of alpha parameters + for alpha, ax in zip(alpha_params, axes.flatten()): + plot_dirichlet(alpha, ax) plt.savefig(f"{OUT}/dirichlet.{EXT}") plt.close() @@ -274,7 +307,7 @@ def y(lmbda, k): def weibull(): - # Defining the Frechet distribution PDF + # Defining the Weibull distribution PDF def y(alpha, x): from scipy.stats import weibull_min return weibull_min.pdf(x, alpha) @@ -292,30 +325,24 @@ def y(alpha, x): ax.plot(x, y(alpha, x), label=f'α = {alpha}') # Adding title and labels - ax.set_title('Frechet distribution') + ax.set_title('Weibull distribution') ax.set_xlabel('x') ax.set_ylabel('Probability density') # Adding a legend ax.legend() - plt.savefig(f"{OUT}/frechet.{EXT}") + plt.savefig(f"{OUT}/weibull.{EXT}") plt.close() if __name__ == "__main__": - # Recursively delete the output directory - for root, dirs, files in os.walk(OUT, topdown=False): - for file in files: - os.remove(os.path.join(root, file)) - for dir in dirs: - os.rmdir(os.path.join(root, dir)) - standard_normal() - bernoulli() - chi_squared() - binomial() - cauchy() - dirichlet() + # standard_normal() + # bernoulli() + # chi_squared() + # binomial() + # cauchy() + # dirichlet() exponential() gamma() poisson() diff --git a/rand_distr/Cargo.toml b/rand_distr/Cargo.toml index 4966374302..cf9872aa88 100644 --- a/rand_distr/Cargo.toml +++ b/rand_distr/Cargo.toml @@ -25,12 +25,14 @@ std = ["alloc", "rand/std"] alloc = ["rand/alloc"] std_math = ["num-traits/std"] serde1 = ["serde", "rand/serde1"] +doc-images = ["embed-doc-image"] [dependencies] rand = { path = "..", version = "=0.9.0-alpha.1", default-features = false } num-traits = { version = "0.2", default-features = false, features = ["libm"] } serde = { version = "1.0.103", features = ["derive"], optional = true } serde_with = { version = "3.6.1", optional = true } +embed-doc-image = { version = "0.1.4", optional = true } [dev-dependencies] rand_pcg = { version = "=0.9.0-alpha.1", path = "../rand_pcg" } diff --git a/rand_distr/assets/binomial.png b/rand_distr/assets/binomial.png new file mode 100644 index 0000000000000000000000000000000000000000..e88feb3603a0a1ce674224b723b8360719a766aa GIT binary patch literal 19216 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 &$k}*C29m%7;+2Pg6n~Pm^B(rmIeP# z5i8xg{vdUip#HxqF}%4dhTwZLY)%fvY>W=bji)(G=xyA2>;myIA!DNBfd>mC1+Z;l zZNN*Y3E0QQh$9nY4*{8@PVDU{9GEmzgEGuI6K6Wzw7`v+TXSYRet)yZ27K>uH#|*b za$yljf)o4-4q_u*z^{PZhhExs$bz3{(s=F#38FR68!W0Ho6T59`y2nyj>8F=Cm@^< zD;#N8Q8UYb1zyDnTrGx9`Y%GT?}@_(2IE}(5kPbr1oo#*7`9ywlKz*1-dAz$;v&H) zhl#%TD97WgKvQmjro+n1+jvv4SJF2H4rb8+3pLnE(6j+xr#Dw`2CM>C4_!$vs=3~S z5H2BtQF-Cx8A$sE7=yk6U*mW0-q9mxTU+nUJYm^$DI7_`n=8Bsuj-)#p}nlK($<=j zH^~0$x^TDUC0-Ng0msof&>Ql=5|juZXd$m(4O{tO?%#JVFWIe8^sftE7ObkQVuMLhyxDgD^lsfC6VkR$;}2jqDc&<-R=iY{m^gtmtjtrl`D zcHChiW`+Blk%RT{ddd|h4R0@isRLYGQiTiS9&C`gTx$_hqu^OTne}=(8(buKeoJTB zo4L78DXqdTsc;bkQ?)KEe}l36;ltmS_VHi2KfCX@o~l0`6xSE;`Z2MzH@n!nAEtAQ_p}oNg3=dXd9ixTUx$m>z(5pe1GiZYO3GL?h%;*aIa+gF|3j4U<{*?LWfA#1~NNNW1r48 zYM)&~i4YD9AQ_g-4R1H=7_LLu0Uu7(**PEzf-Kf3O$#9}z=aXB^ux#Pk}m^~VFVu2 z2<&qSFU1vyk&v+v<(M_ZX?M9Tq!2<2L3sGhnq3MyI$;PbTyAd5I#Z6WnBt+%!a_9M z?1d!41I3Ooh}aWM8VusQVcyft%g^tH2IA+pHExI+TPuM7FJ4xAqLwj$3z+(Yif;unWQR zJqC;zCkr+r{jh+58c4a4=@-dg(RPOhB7Gcs(#QrKX<)#2oLm6K-J7de1UJO}xZpfg z-9>zrpyi>5a{Th1J&hv;2QnuN3s%;gN{F52-fEi{$IH2iw)y*kob-zx+X-Vyjw6$X zcp}XCy*=0F`>Q{HR>7*$#tt;X{M^&u9|aDY_)LiHC0ybo(Q6PGOqTXxOB%qAydY_L z1Pk>0zfAX4*rhPJe%A95hsB>*LP?Xz_o5ZF@gr_XKw)G{fPR&S{utjM2XFUB5S?!t z7Nt>Dp|T5sDf%puU@ei#ckN0-xI2mI1xzTnSc-san>bi?Y&3i0k_uvRMq;o>iPHfd z8={&aRbVyZHnECClb*m*p`}pLyGWKJ&tZa~4AFom!T@EEJR^v5k6zN*{ZRm|jvzCq zidN7KV87Ob>x_oR5{oEGG6A*~y5xu>3;v}+Yy^3s~5}OFg{i9l#ZYQ`o5e(83N1Q(=LjBKnLHJIKu$4LCZl>ooe)?-vC`?4a0{*~O zZ!aq=Ge;hVz^MdMEgpo<4Pes3As>{?&Ad5u z=&tN1QyW@9quj6mQ_U@ZnKHXrYQej2+;t|eXxNKcKna;j=gSW3HQ%ghr_tg~JPf1- z0ai*#Al_Ut@ARQ^o>`of7Y(4=y`yBpV<*+tXQ&_~gU`TLHELGnT#(7k)` zPws%cj~*Ho`q)B|(?5Q=zqs+N#oOga?jH_cNj^(Dp#b%nG#<1AC2OZmcu+h}C&g|Q9<<4|AHVTg3qf7lP}QvteA2#h7}B%*;8NRyUj9DTG!PND~W z7?HWrMreNII7uC(u!fcj7APSJjVz=+1zn+3_&|a;a9-0BhY=W%4h*p**#)K)CisBc z!k=(!B_diFg2M$OQBHIrW!h+at}>!)MT#*TgyY}8SEG@d$6@>$al-&P9x`V}lB`3w z>?GJeqN9?g6w)tvSgSytbZbCUPk@Zp*K7;n6-_t1WH(~k8ek5MFK6Am7p)8-$l^mV zktiWCHx#%yL2RvVA>Hw$pL+YDDte2G8- zX?8@KBl(rr$_S3CrHSC>p80f&%!Lh<8BeSRBa+i`%*S%7q1t7~mTcq!5)4vCEu|e!Tx`oV)f}5MK2>V*V zE^E{(!JU5%jnl2hxo8a+L7qrA=_z|80wBGy_y{=z4Df2dN0DGMWQ6Y6P2e=}DTh?k z${t>0+qbX7atYV)B2$>8CIDwLA{Oufm~OzE@r+H;N(n88OVN~6aMZLdOFaPJ7Etzm zax%?84URX9386xOI}xOIOO0iyd>AdZTQ(Oo*035>AAuRbmyEui=#!yGjdX-Hm6 zhm>#7UN?w2ECpe|HU31()2^FFNzFh~1fEo2EKe5>it@5gpFY{RU?5;)KbZq476efq ztbwU}<|%9(7x3K#q~oapYpFK9h)u;VhNH#*l;>Fljs{Z!3Y? z1TUdoU~i`t6WYv39u-{pUQ9d_pf+EO*|2j$@+Jzk)w9%8tDv!7wAz!Vw9k3lQTRTZ zES>crBs}svku_1*X%G<|7GQQU__!6Yp|`QHBmyTG02ZD?TVh2s&P?)7C)l0Hj{riX z_*g{G1&Jb`KgU%F}DW0Oh3~^15)cW zB3~XvF|`mAg;)hKU*qZR+xixNkdEgGXK1~o8wGVIT7y}yBct;0C?dBdJAk>`t}j4x z8m#G(XXnSMdoCTgk8OIdZ{>AV(_OB6`P?E5II705YG{<^P2>XeAfd%z*cH>d9kWdYY zUxG9*r#a7B4mZPMPp~VL{W?7VT4Vu$c_Burgv>Vr zHK{Z58p{B3lO|G(DF*NIjX>RtZ?X_UOd>}x9glffGp|{15&9J=90{8YoBY)I&0?4{ z8I*+e5PZ-gq=b)$D%k`E<`6tpG9))n!9UrWY1Tw;1c-u(mqxvhKB_oU5DtKOsRjs1 zLnrD>_%+DVVl?O+BN-0^7(yM~h;E65bWu@JBlwfaqQH|G4oQi4ej8^T@x2%XAfPeS zl$-|g?Hy5ymQH(lcEiElCdJ=}=Rpdtpoz2TOu0Q^`fBz`>bp6y(jE<4G z2s}}HFm5}ba0FjZVqz640+-Y#W@Z!cX!PKgcmW29$B98`dBG~E^@9WwU=3hTF=U?a zQ&T)7^Qh+5~^D12E<$jO) z#8YT_Vjh{E0h}g5_g_XwO{|9-D{@A_d+`CYYX6*_{Z$rVmwMh=ze6=(8P6<&nb`=_ z5_v*=vx@gobb_%82(+SGJ!umQizyD~2Xh-69&Fd^pI-3S9obNPNlJi)GMi#2ie%(ap0JPr`JYn?%TewV0;b8uem@6M^MrX z_1T&f`u8SMo2kvEk8dETli{e&Z5UYwNvqRNe#;2L&HXAxwo=^Q?zvjj17jxcAJ9D{ z*=0(oAKVbM7RB-n%UP5VkG1J`Lq7Qb@=Z+(LfX%=hx=l_FycNGv5Qg{63<_~_5T19 Ct7(J) literal 0 HcmV?d00001 diff --git a/rand_distr/assets/cauchy.png b/rand_distr/assets/cauchy.png new file mode 100644 index 0000000000000000000000000000000000000000..fd79581768ae41b5b18aebc67bddb0cea3b180f8 GIT binary patch literal 42392 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 O>sO=S&b~Fg9P@87X~4_? literal 0 HcmV?d00001 diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 1e8e5e190a..2f4fe6a094 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -30,6 +30,14 @@ use num_traits::Float; /// let v = bin.sample(&mut rand::thread_rng()); /// println!("{} is from a binomial distribution", v); /// ``` +/// +/// # Diagram +/// +/// The diagram shows the binomial distribution for `n = 10` and `p = 0.2`. +/// The probability of `k` successes is shown for each `k` from 0 to 10. +/// +/// ![Binomial distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "assets/binomial.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Binomial { diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index fefaa737da..dcf3b01f1d 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -31,6 +31,13 @@ use core::fmt; /// let v = cau.sample(&mut rand::thread_rng()); /// println!("{} is from a Cauchy(2, 5) distribution", v); /// ``` +/// +/// # Diagram +/// +/// The diagram shows the Cauchy distribution with various parameters. +/// +/// ![Cauchy distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "assets/cauchy.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Cauchy diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index d8547dc7f6..ec7e82130f 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -37,12 +37,11 @@ use serde::{Serialize, Deserialize}; /// /// # Diagram /// -/// The diagram below shows the Bernoulli distribution with `p = 0.3`. -///

-/// Bernoulli distribution with p = 0.3 -///
+/// The diagram shows the probabilities of either outcome for the Bernoulli +/// distribution with `p = 0.1`, `p = 0.5`, and `p = 0.9`. /// -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_doc_image("diagram", "assets/bernoulli.png"))] +/// ![Bernoulli distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "assets/bernoulli.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Bernoulli { From 31874954b7625463a631521b13cbc81c0dcab504 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 13:30:35 +0200 Subject: [PATCH 03/29] Remove bernoulli.png, move python src to diagrams folder, add more diagrams --- Cargo.toml | 2 - assets/bernoulli.png | Bin 14538 -> 0 bytes diagrams/src/main.py | 349 ---------------------- diagrams/src/requirements.txt | 3 - rand_distr/{assets => plots}/binomial.png | Bin rand_distr/{assets => plots}/cauchy.png | Bin rand_distr/plots/chi_squared.png | Bin 0 -> 41303 bytes rand_distr/plots/exponential.png | Bin 0 -> 32953 bytes rand_distr/plots/gamma.png | Bin 0 -> 48636 bytes rand_distr/plots/poisson.png | Bin 0 -> 45581 bytes rand_distr/plots/standard_normal.png | Bin 0 -> 36110 bytes rand_distr/src/binomial.rs | 2 +- rand_distr/src/cauchy.rs | 2 +- src/distributions/bernoulli.rs | 8 - 14 files changed, 2 insertions(+), 364 deletions(-) delete mode 100644 assets/bernoulli.png delete mode 100644 diagrams/src/main.py delete mode 100644 diagrams/src/requirements.txt rename rand_distr/{assets => plots}/binomial.png (100%) rename rand_distr/{assets => plots}/cauchy.png (100%) create mode 100644 rand_distr/plots/chi_squared.png create mode 100644 rand_distr/plots/exponential.png create mode 100644 rand_distr/plots/gamma.png create mode 100644 rand_distr/plots/poisson.png create mode 100644 rand_distr/plots/standard_normal.png diff --git a/Cargo.toml b/Cargo.toml index d6b8423b82..6c7ce73f66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,6 @@ features = ["small_rng", "serde1"] default = ["std", "std_rng", "getrandom"] nightly = [] # some additions requiring nightly Rust serde1 = ["serde", "rand_core/serde1"] -doc-images = ["embed-doc-image"] # Option (enabled by default): without "std" rand uses libcore; this option # enables functionality expected to be available on a standard platform. @@ -71,7 +70,6 @@ log = { version = "0.4.4", optional = true } serde = { version = "1.0.103", features = ["derive"], optional = true } rand_chacha = { path = "rand_chacha", version = "=0.9.0-alpha.1", default-features = false, optional = true } zerocopy = { version = "=0.8.0-alpha.6", default-features = false, features = ["simd"] } -embed-doc-image = { version = "0.1.4", optional = true } [dev-dependencies] rand_pcg = { path = "rand_pcg", version = "=0.9.0-alpha.1" } diff --git a/assets/bernoulli.png b/assets/bernoulli.png deleted file mode 100644 index bc0f99c98620e6f9687453d03f7b1bdcfea70402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14538 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 diff --git a/diagrams/src/main.py b/diagrams/src/main.py deleted file mode 100644 index 1c8a1c84e3..0000000000 --- a/diagrams/src/main.py +++ /dev/null @@ -1,349 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt - - -OUT = "target" -EXT = "png" - - -def standard_normal(): - from scipy.stats import norm - # Possible values for the distribution - x = np.linspace(-3, 3, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for the standard normal distribution - ax.plot(x, norm.pdf(x), label='Standard normal') - - # Adding title and labels - ax.set_title('Standard normal distribution') - ax.set_xlabel('Z-score (standard deviations from the mean)') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/standard_normal.{EXT}") - plt.close() - - -def chi_squared(): - def y(x, df): - from scipy.stats import chi2 - y = chi2.pdf(x, df) - y[y > 1.0] = np.nan - return y - # Degrees of freedom for the distribution - df_values = [1, 2, 3, 5, 9] - # Possible values for the distribution - x = np.linspace(0, 10, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of the degrees of freedom - for df in df_values: - ax.plot(x, y(x, df), label=f'df = {df}') - - # Adding title and labels - ax.set_title('Chi-squared distribution') - ax.set_xlabel('Chi-squared statistic') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/chi_squared.{EXT}") - plt.close() - - -def bernoulli(): - # Defining the Bernoulli distribution PMF - def y(p): - return np.array([1 - p, p]) - - # Possible values of p for the distribution - p_values = [0.1, 0.5, 0.9] - # Possible outcomes for a Bernoulli distributed variable - outcomes = np.array([0, 1]) - - # Creating the figure and the axis - fig, ax = plt.subplots() - # Width of each bar - width = 0.2 - - # Plotting the PMF for each value of p - for i, p in enumerate(p_values): - ax.bar(outcomes - width / 2 + i * width - 0.1, y(p), width=width, label=f'p = {p}') - - # Adding title and labels - ax.set_title('Bernoulli distribution') - ax.set_xlabel('Outcome') - ax.set_ylabel('Probability') - ax.set_xticks(outcomes) # set the ticks to be the outcome values - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/bernoulli.{EXT}") - plt.close() - - -def binomial(): - # Defining the Binomial distribution PMF - def y(n, p, k): - from scipy.stats import binom - return binom.pmf(k, n, p) - - n = 10 - p = 0.2 - # Possible outcomes for a Binomial distributed variable - outcomes = np.arange(0, 11) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PMF for each value of n and p - ax.bar(outcomes, y(n, p, outcomes), label=f'n = {n}, p = {p}') - - # Adding title and labels - ax.set_title('Binomial distribution') - ax.set_xlabel('k (number of successes)') - ax.set_ylabel('Probability') - ax.set_xticks(outcomes) # set the ticks to be the outcome values - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/binomial.{EXT}") - plt.close() - - -def cauchy(): - # Possible values for the distribution - x = np.linspace(-7, 7, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] - - # Plotting the PDF for the Cauchy distribution - for x0, gamma in inputs: - ax.plot(x, 1 / (np.pi * gamma * (1 + ((x - x0) / gamma)**2)), label=f'x₀ = {x0}, γ = {gamma}') - - # Adding title and labels - ax.set_title('Cauchy distribution') - ax.set_xlabel('x') - ax.set_ylabel('P(x)') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/cauchy.{EXT}") - plt.close() - - -def dirichlet(): - def plot_dirichlet(alpha, ax): - """ - Plots a Dirichlet distribution given alpha parameters and axis. - """ - # Create a 2D meshgrid of points - resolution = 200 # Resolution of the visualization - x = np.linspace(0, 1, resolution) - y = np.linspace(0, 1, resolution) - X, Y = np.meshgrid(x, y) - # Flatten the grid to pass to the distribution - XY = np.vstack((X.flatten(), Y.flatten())) - - # Calculate remaining coordinate for the 3-simplex (3D Dirichlet is defined on a triangle in 2D) - Z = 1 - X - Y - # Filter out points outside the triangle - valid = (Z >= 0) - # Prepare the probability density function (PDF) array - PDF = np.zeros(X.shape).flatten() - - # Calculate PDF only for valid points - if np.any(valid): - from scipy.stats import dirichlet - # The 3rd coordinate for the Dirichlet distribution - Z_valid = Z.flatten()[valid] - # Stack the coordinates for the distribution input - XYZ_valid = np.vstack((XY[:, valid], Z_valid)) - # Calculate the Dirichlet PDF - PDF[valid] = dirichlet.pdf(XYZ_valid.T, alpha) - - # Reshape PDF back into the 2D shape of the grid - PDF = PDF.reshape(X.shape) - - # Create a contour plot on the provided axis - contour = ax.contourf(X, Y, PDF, levels=15, cmap='Blues') - # Add a colorbar - plt.colorbar(contour, ax=ax, pad=0.05, aspect=10) - # Set limits and labels - ax.set_xlim(0, 1) - ax.set_ylim(0, 1) - ax.set_xticks([]) - ax.set_yticks([]) - ax.set_xlabel(r'$x_1$', fontsize=12) - ax.set_ylabel(r'$x_2$', fontsize=12) - # Set title for the subplot - ax.set_title(r'$\alpha = {}$'.format(alpha), fontsize=14) - - # Define alpha parameters for the Dirichlet distributions to be plotted - alpha_params = [ - (1.5, 1.5, 1.5), - (5.0, 5.0, 5.0), - (1.0, 2.0, 2.0), - (2.0, 4.0, 8.0) - ] - - # Create a figure with subplots - fig, axes = plt.subplots(2, 2, figsize=(10, 8)) - - # Loop through the list of alpha parameters - for alpha, ax in zip(alpha_params, axes.flatten()): - plot_dirichlet(alpha, ax) - - plt.savefig(f"{OUT}/dirichlet.{EXT}") - plt.close() - - -def exponential(): - # Defining the Exponential distribution PDF - def y(lmbda, x): - from scipy.stats import expon - return expon.pdf(x, scale=1 / lmbda) - - # Possible values of lambda for the distribution - lambda_values = [0.5, 1, 2] - # Possible values for the distribution - x = np.linspace(0, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of lambda - for lmbda in lambda_values: - ax.plot(x, y(lmbda, x), label=f'λ = {lmbda}') - - # Adding title and labels - ax.set_title('Exponential distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/exponential.{EXT}") - plt.close() - - -def gamma(): - # Defining the Gamma distribution PDF - def y(alpha, beta, x): - from scipy.stats import gamma - return gamma.pdf(x, alpha, scale=1 / beta) - - # Possible values of alpha for the distribution - alpha_values = [1, 2, 3] - # Possible values of beta for the distribution - beta_values = [0.5, 1, 2] - # Possible values for the distribution - x = np.linspace(0, 10, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of alpha and beta - for alpha in alpha_values: - for beta in beta_values: - ax.plot(x, y(alpha, beta, x), label=f'α = {alpha}, β = {beta}') - - # Adding title and labels - ax.set_title('Gamma distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/gamma.{EXT}") - plt.close() - - -def poisson(): - # Defining the Poisson distribution PMF - def y(lmbda, k): - from scipy.stats import poisson - return poisson.pmf(k, lmbda) - - # Possible values of lambda for the distribution - lambda_values = [0.5, 1, 2, 4, 10] - # Possible outcomes for a Poisson distributed variable - outcomes = np.arange(0, 15) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PMF for each value of lambda - for i, lmbda in enumerate(lambda_values): - ax.plot(outcomes, y(lmbda, outcomes), 'o-', label=f'λ = {lmbda}') - - # Adding title and labels - ax.set_title('Poisson distribution') - ax.set_xlabel('Outcome') - ax.set_ylabel('Probability') - ax.set_xticks(outcomes) # set the ticks to be the outcome values - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/poisson.{EXT}") - plt.close() - - -def weibull(): - # Defining the Weibull distribution PDF - def y(alpha, x): - from scipy.stats import weibull_min - return weibull_min.pdf(x, alpha) - - # Possible values of alpha for the distribution - alpha_values = [0.5, 1, 2] - # Possible values for the distribution - x = np.linspace(0, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of alpha - for alpha in alpha_values: - ax.plot(x, y(alpha, x), label=f'α = {alpha}') - - # Adding title and labels - ax.set_title('Weibull distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/weibull.{EXT}") - plt.close() - - -if __name__ == "__main__": - # standard_normal() - # bernoulli() - # chi_squared() - # binomial() - # cauchy() - # dirichlet() - exponential() - gamma() - poisson() - weibull() diff --git a/diagrams/src/requirements.txt b/diagrams/src/requirements.txt deleted file mode 100644 index f1161d4889..0000000000 --- a/diagrams/src/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -numpy==1.26.4 -matplotlib==3.8.4 -scipy==1.13.0 \ No newline at end of file diff --git a/rand_distr/assets/binomial.png b/rand_distr/plots/binomial.png similarity index 100% rename from rand_distr/assets/binomial.png rename to rand_distr/plots/binomial.png diff --git a/rand_distr/assets/cauchy.png b/rand_distr/plots/cauchy.png similarity index 100% rename from rand_distr/assets/cauchy.png rename to rand_distr/plots/cauchy.png diff --git a/rand_distr/plots/chi_squared.png b/rand_distr/plots/chi_squared.png new file mode 100644 index 0000000000000000000000000000000000000000..b911435c75d5a34b9e4c2ca24eb6080d2f1db449 GIT binary patch literal 41303 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 literal 0 HcmV?d00001 diff --git a/rand_distr/plots/exponential.png b/rand_distr/plots/exponential.png new file mode 100644 index 0000000000000000000000000000000000000000..f625caa27e457bd1cc5b7e63d3efaaea04849e0c GIT binary patch literal 32953 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 P1%G6u<)!j&>H7XJO4+EI literal 0 HcmV?d00001 diff --git a/rand_distr/plots/gamma.png b/rand_distr/plots/gamma.png new file mode 100644 index 0000000000000000000000000000000000000000..c48a009d870167a6c12f1df0a745b16a483b9bef GIT binary patch literal 48636 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 Pfj{?URb_IejlKU1i)NYk literal 0 HcmV?d00001 diff --git a/rand_distr/plots/standard_normal.png b/rand_distr/plots/standard_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8de210c9ad79f8ddc1e7aa3495edd6bebdf2a1 GIT binary patch literal 36110 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

B(Hb8^)^dKcW%(@dNNd3%33@Zd`z;kBbOhyQT_b z@vNiI)brbl^a>!E@MaQ7NCdbMur>yKT96HkdGcg-X$c>Jfq?5C9`7_^?1$pfqem$& z$!Y@EFFH6S2%h|A8hsQd-&IHCc;|2GWRMhjheI5cD~)6T|5Hu=^W7QJziNQOfhmG;jn5wQW(`{r*Cg;_ZIufW2GvMF#}lIOXrqH-QU-rj=| zg72WvFp4|1Kx7^}TuEo$`@gB}3>r7|AKohnj;uZidFpwVlvI)U(jG6&>2D->JRh~^ zpG1&A1`}Ze9|}J9B15kQt{6TI<2rco#XnvrCsV%Cy##Z5wh3A{ZagYkZKwTUUgyTX z(36z_1StnpuCeud2{++;FoLC-1`n0G2FBk1`xr>IpjZJJ-rJ}9FJotx&4qP2rA1qO zB3&%bQuJRf(6o)#{5_N4$t^C~W@&jhbybnf!qKs0zIMgtb)74oE2fPmOmtbYqFpc=Z+c7%ZBjZd5eoc00v1fy4EFZ+D35_rrdeR>rVZZqccCVQEcfKX)Db#;FUkBq(?MBT%! zgC}**UPg*s7~MLkq6G>5b0SDpKlH8F$7@xA9m5b}FYvd>Q%6BQzT(#;{4f8DS?qWT z4aVFZ@19+x+@>4q#xalGr-kZj?eE-f@09Q%&K8?-E;$Fper4{^>1nYE90=i9tY?#E zs$49->vP-T*!{KFi9X3`_IoQZ>T6V|J2(4kw}Z}}l|Q}F5s$HMzKRhWdz^1o}p6GodFsV4yESNH!Xj(UCxQdgU>9Q^(w~Y*2%u3-3FBxMn`KwNGpT zou@D!(w%nxRoAlKqsG;MPM&NC#FkT7I&Syzv19ZrKE7#?@Q`IjK;f7a$yLS?h_8!) zEJxjg0wgou07!4~4qS^#m7UHlaaGKLlWYp2h=c~LZhuW$Nk30wu+(43693W0!ciaF zjL?M-EIp|*P_cS@dtW-mqfx3*@8#MgthJN8_x5nB=u2Usuu97qO5|F9)>Co-okQL_hd6zrFa! zCcw~;NIE=*`amLiAEAxcxmmb6~qm`5E}dT;#C6 z2sMhYg_3o%?lEKvK*sFnY`TRT2&2bvX6IpsOX>c7ZuoeE?ZG?d@G%#7ktEFhz=c*~ zAt+auo=%urPk%?1E%|Cy1|DSHQI9=*d=xFTl_<9WdV(g=L9GK#BmxTCEa-I*0n;rQy!&<<&rxtLs zVoC@HfoDX#>1VLC_SNzJ=PECIeNs>%6OHvlnQfEdH0kpUF0mzoRN!zH3_J)O{U)cR z41->TgP+_y{VNoPg)#B9Fq6%Q^am8MfZ4{w?-t_3JJI90S|r< zk0Ha&dCdSOYZw%;yq8baxL`_0?15n)G%5uc%9NH)<4@C$tAF{=lY(X$T#%@fDlqF5v0@O7pbs2j0RfubWox4 zlk1*6NqG2fA1Oz!df!o7F5nRi*qHi!Dc$?2!p z)0chuBQmn-B1Pqf71&Tj`-=fDFk;uiM*@pO$ZJU(X7V)`-?zLY99wM@gOAN9UEAF( z3^||p(tQgr6%Cwl;xJhBeQ-1kmdQK^ABoUEE-HjNNAR&j0J{i)Aez*C%+W!G~SFuaC39q@Stt&l(m zaI!R1$_R}d#lK*GblH_kyHg^)O*aC4rHmld)+JOoZk&5Z#1=W*Po(Ud2L-s$pv2PA zSjuS{R6nqzz?{+k3871rq3Q7P>A=)jewchFF+BX-qqt?mG0qP#2B?3L0o~2SuzNvn zj1#f#hEH+B!Ktul#b%Q9z=eqmcHm8@J(5?o8X&y!vt;JA{tN_yQJ~BV&O$_GDH8;a zK_G`Db*_{mtfl{E6JFfwU2_NYr(u|)57c#Z&;@cCDJa=`8YE@l_t!_`Q-sj-mG$9& zx_DDTz*?DlP_Y`{0oFNKQ6L(?{K)zlgh1%v697747IbE2rX{~LYQs}f5|3wIm|ZN{ zLW76ol&!dHq$T2TL4kMrYQ!t;GQ z;7;cRy-ogv6>_lbKl6PTPKeC#>|;~Nio+4S_`e!^^SB(_weA0GrqDb~6Q#jWLW2g0 z2oa@>X`rM@v!v3jIYcO$NGXYuM4AhwfoRZ7b1J2x>D><~S^EO1IU|4b zw3)`y&5B0j!rQf?P3%^cXsEkV3%Yl;v9iT##0?%>Wb^-sFh=-{CopYzEs;fH(299Lx z(TXs8mrBnSZArSL!-CCNgDM|PpKngGp<4x^n%Q_N{mU;;qp%x>>W1-<3N-yq4@F@f zOlG?9t7iX)lDfib2IE}9EYM7VNQDinL*3&}U+rjaZtnirdbqC7r*~gHgF%1#Wm#3{ zpT{h4M$^?_TH`WVeEaBoBIu0y0xQb0M6ooESNrJWAO%66wHxno=kDDPe{_HN@FC&Q z!_Ka*#HX!gWejiLG#GQrLkbU`AL-hY+jsbYGq6Fd9(!QKyry$+@=)uFz4A6pkCMeu zoxn-LSO1>qE_a+cdDM0Fnl<)=?~gBkapdO+kJ!N!v>iz~3a2~7V1$M-(N{-@4qlAn zIWf>0CY&2}23vC1foFCZdobx80E40h!7a4Z6NME7S=7|j)ZBuzrj?vr1NXylNHI~D zERx~RR9Tg_Z1+trag}S~cZ@mtC2je{#FO!asNtDdSCpb>6psEXh(?{5KbE1VHimuL z@P!cO9uW89Sl?%j6HaQ~;1s0(b=hYQV&C3kFPwL58Nd{Af_es}$vs`rKt}GIKi=RS zlxFeeReJ)R;Rm)GcZgQ7J296Q!}1I=G_TFIGq%b42=q%j$YpS!r#h(+Dv`32hL)Be z@o5uxu#11xEz*4i7oeoNI-|UK)?7JcSlnRp^lXrDe;!+GY8|FSQG5Ej*4XkTDw}E= z3RCyQ2OU}R-fz)6g&xlm7~av6*$-x3tIO2);~ubJ8+^|bRCQP2S$ix9>Y|eNcHz3Z zI-)LmRu~!)p?%=M6_*8oCz5bzA@YPPSFSupLxwm4VcV_$el;@E8|v;v^lpeR9w?na zydVNLjQCY`S^C+pyY!HZSPq!_iaeUxtuOv!^Eu+$BaLa4&SWbR-~dnUqJjr}hFE`@ zwr}6A%(+#Di+QN+l^~XY`U;b?2H+Wj*@MyAc~ueBYdgf_r+S&}HzZNx0nd8A)@W_) zOEKF#);2jlnr7ku`ou_?lu2LIU(*lVfds{baZ(^AIG8BQ0T%}$V}>r5mzKe~4l8Nf z)7Nz82l?WQRW-_dLGG%>5btvu7>sV=&z)A5plvbm~Q1|k@Bbm^_MEOK**;aG? zLn|)Rp(gBmlWH7f6%$>x95U0=T%3=;)fv&}%6iQyvG>>SW{oFC;v6rn`?3-nM+#Dn zU!v)!FR9A=m0`nT`;`)OhF65QB&f4T*SAP@pu^DxSkLxdyDk^tDYy;^g)vaXdbM=$ z+yJlGMVylSBM;qkEV(}Sp1sbufB4u(828~~xCEkDJjf7`Z+^=2g7xLMvO-i*WtE}H zyVUxq%j=xR*_D>+wQhp3Wq!+D2%ImwZAeyHo_-1^4|yY05W~a6a-a)d+_=x2%Tw8f z)4xn08!g$$bt#^r^(ne);geGb6zlxRrS+RAWD_24ZfkVlIUC+qnrvGTd2?`BM^Y^5Q1@$oh%_P6mjdV~80&A> za4s~h`L1Vwuh(K6$?a>|StH{EdHK9eUa5$l4IgGjzn?j*?B(i;cuK?^=8vsjQn8T7 zw4Lu2B1p`V5;`C?%0H$a{PPfd+2}pIrlB0yG_*6?*~GF{U+`ic1z`~&;Pfsr`_|+pw?ls)x6=bym5^`%&-N%W9pe3JRK!VkaNia`|oT6|yT>W7k z&zo+309uZ+gtPtR{@n>-NO?s?5|9qfcYS?*A*8pT*_7Y)#>r#BwO@e?)}~@z6H#(t zO@t$?FZ>SWJ+kaLuhP;ele96~$1w3@uxxP~WC7e}XMgY4V(jl4UQWu+kLeRWPGV^n zIrD!Jjb&8KlGuG!Px-3%uQ_|T?CZN_@9a6qNVs#EP{BNjUA zT(Q|0Vt9LhxNJoM`Lo$`n-<&oDRiq>27N!+%^=ddAb#*!*M8aH23j}_ifcZcz|J9& zkrT*qT<~)VUS|3hj=(9VY$63L>iEK?wec&=w0~6Fk2EyQMc%r1ZH^7no;-dcL{}fI z9=)Z9ofVe3hBR0Xn*>5jkHe7`<-RE+qUX`GO2gEwP4Z;)$>>Xdvr8yp0b$RucE=#dX5*}uwT z-q&%RzbDL_@t_7*cZi?dRl1QX^n0ZC_)5d{%KVHSY2K_Pe=RmS4)(R{!A&eXC5mBu``@%Yud#1VV>Y+`bQK@4F9K(-?rHhmJ+`yz1q-i=lBO@& zIIz?G60yUC?;OfA>n-PZfu~^0zxL>BTyX zdyE&j>8O}7b51gtmK008WiEBq)M{i0rIX1ZOU^+-I~SG|Px`Y}XP7tiDl;Oa) z*pq)Y_vXL)*q_ht*|qC@2gQ0Z=b!Fy(u?8Sb8=V@w#vAwzzrgS^|?Ojl1*z}bIG#v z+gBMmj64BI?JX|PzacOAdz0z_d!fboj`4#;gX-d&3`UMa5>!XETD8e(2`nG%{Z}yt zx0^acLm9cwN_1@?4%=jPMq`Rr0|Wm<=|-2p@au*^D@OhlGlbOy!bKH=4MGN3XQm8O z^#P99;pC(MWe5i+Cp!wcn3x!y++EoxKXX6OQCRdNBXGrEi(F3pQBFxGyDmS|9PgT` z6BuemwZ()8#mn!ASP_<;tx$DGRS+J5(W$8ll=0cVilBs;oSw8>a{<#E)L^#j@Gd7(fxlngWU_2(MVci?82otc9^dzfksWRpX?WDr!s96!!WC^dsD$KXgpNq zMgK`|c7D^9gN0f-XE1`)Dzhkp9kMF&GC`~mBEZI1_wg^t5qik^puq*BvsZWJT_Y6fO`{? zxyYV`yM1LMS*TGOpj$jWKO%_dO4EZL`}?kUYl`dV?unPR4}A#TUBG@*5vK~fDVt?~ z*2d(oT*0wH4|=euys((Rdn3wF-{%>8(;p@^~@$gmk3|8=jKv z{!W^~D>*t!iZYb?H?Y$X*mlnnYX+(jo56>%oA?@~@yk+gzD7UT=;k$Zo+|94_Dx@C z4iO9rS`vIWMKvI2ovO_Gna?cy&njLJ;8!ON08(MyxaydYon3hQB7EgAHr2LVyj^n0 zB;4_G6YjeEcm*p2Sv2I&V7@=?QDZ>eqf^HUg=Z7n_SO1fq2N>x!<_YJ?&KZ^jYa&M z@u2lR3+MUswy(16PAH8DUrH7WMr(W_n>XzjL%)68pGbm|3i#J(ozuusJt34s~vSV~3zRlWQE!O5+OhW|u%^xScUhv0Se|;WxC*m8^bInEkl6aL4 zYunxzl;?ZOkp#m_@NgiWtw!t6(&lV!C#RdER5h;Ml%* zoJ#C^->`pOjRzOu;s<^%p0jLUkFuhu3kG0ez&lDvApQcUB)-;eXWt!O%c;EsRmx4j zk!7ug81R!#z=z#NG|K+Hx|q8M1W}zO&4r*P;AdF_ma%9bNc%I0G@OTnY83c@gRh@5 zJ@ZRRiYD9e+A}Ekb7yjZMt?CV|LDHG{(62j9&h~=ve�t6P1DWsz;C4_*ObJq*NK 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 diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index ec7e82130f..d72620ea7c 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -34,14 +34,6 @@ use serde::{Serialize, Deserialize}; /// This `Bernoulli` distribution uses 64 bits from the RNG (a `u64`), /// so only probabilities that are multiples of 2-64 can be /// represented. -/// -/// # Diagram -/// -/// The diagram shows the probabilities of either outcome for the Bernoulli -/// distribution with `p = 0.1`, `p = 0.5`, and `p = 0.9`. -/// -/// ![Bernoulli distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "assets/bernoulli.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Bernoulli { From e4cfd9d6bdefbd13f25b0dcf6cca96864b4260bf Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 14:05:16 +0200 Subject: [PATCH 04/29] Embed more diagrams --- rand_distr/plots/binomial.png | Bin 19216 -> 20648 bytes rand_distr/plots/chi_squared.png | Bin 41303 -> 40453 bytes rand_distr/plots/gamma.png | Bin 48636 -> 48998 bytes rand_distr/plots/normal.png | Bin 0 -> 44523 bytes rand_distr/plots/standard_normal.png | Bin 36110 -> 0 bytes rand_distr/src/binomial.rs | 4 ++-- rand_distr/src/exponential.rs | 7 +++++++ rand_distr/src/gamma.rs | 14 ++++++++++++++ rand_distr/src/normal.rs | 7 +++++++ 9 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 rand_distr/plots/normal.png delete mode 100644 rand_distr/plots/standard_normal.png diff --git a/rand_distr/plots/binomial.png b/rand_distr/plots/binomial.png index e88feb3603a0a1ce674224b723b8360719a766aa..fae6b7cc5484c0e282d383f888247657d61495e4 100644 GIT binary patch literal 20648 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 D_kwCg literal 19216 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 &$k}*C29m%7;+2Pg6n~Pm^B(rmIeP# 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 Ct7(J) diff --git a/rand_distr/plots/chi_squared.png b/rand_distr/plots/chi_squared.png index b911435c75d5a34b9e4c2ca24eb6080d2f1db449..582e5a5886c9eb0ebd72cc149d8d4c78018d72f8 100644 GIT binary patch literal 40453 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

0+1mZ=$*1@ojjh$ha}6RREia~FN%jzeHK5B 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 =#Xk-31k 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 AAOHXW literal 41303 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 diff --git a/rand_distr/plots/gamma.png b/rand_distr/plots/gamma.png index c48a009d870167a6c12f1df0a745b16a483b9bef..4f32fd2b2b1f96cf86aa1ba9975c7883a25b445b 100644 GIT binary patch literal 48998 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

%%7IggnR z&9ps!{MK@*`OfFsfbXVX-tkZSiwv(*N$}kd$~P?$`;&Qurz_#T)~KbZaxzL4!`A)2 z8UNR?&`{$RUHS^0Ce`0(cEn_nO7STer1=O60aAszP0(8fOx3K>)y=?yr`s_hOaReXH|qbs zqy6YgNl{VI%8DigiNF*Xs4sM}gs(blP;H*w6FPg)OKY1I2&v)p>V z2Civon5LpR_TSqa;6Rm#p7FNNui&}cub#DLo3vyd;k%>tyxdc?TLE@l7|L;E56H+IuwEnoU3I+uDk`$E_`6i_A|Gxl0DHBit literal 48636 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 literal 0 HcmV?d00001 diff --git a/rand_distr/plots/standard_normal.png b/rand_distr/plots/standard_normal.png deleted file mode 100644 index 0d8de210c9ad79f8ddc1e7aa3495edd6bebdf2a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36110 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

B(Hb8^)^dKcW%(@dNNd3%33@Zd`z;kBbOhyQT_b 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�t6P1DWsz;C4_*ObJq*NK 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 for Exp1 { /// let v = exp.sample(&mut rand::thread_rng()); /// println!("{} is from a Exp(2) distribution", v); /// ``` +/// +/// # Diagram +/// +/// The diagram shows the exponential distribution with `λ = 0.5`, `λ = 1` and `λ = 2`. +/// +/// ![Exponential distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/exponential.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 1a575bd6a9..50ba293006 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -50,10 +50,17 @@ use serde::{Serialize, Deserialize}; /// println!("{} is from a Gamma(2, 5) distribution", v); /// ``` /// +/// # Diagram +/// +/// The diagram shows the Gamma distribution with varying shape and scale. +/// +/// ![Gamma distribution][diagram] +/// /// [^1]: George Marsaglia and Wai Wan Tsang. 2000. "A Simple Method for /// Generating Gamma Variables" *ACM Trans. Math. Softw.* 26, 3 /// (September 2000), 363-372. /// DOI:[10.1145/358407.358414](https://doi.acm.org/10.1145/358407.358414) +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/gamma.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Gamma @@ -280,6 +287,13 @@ where /// let v = chi.sample(&mut rand::thread_rng()); /// println!("{} is from a χ²(11) distribution", v) /// ``` +/// +/// # Diagram +/// +/// The diagram shows the chi-squared distribution with varying degrees of freedom. +/// +/// ![Chi-squared distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/chi_squared.png"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct ChiSquared diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 635f26f1d4..55d69bc657 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -36,6 +36,13 @@ use core::fmt; /// let val: f64 = thread_rng().sample(StandardNormal); /// println!("{}", val); /// ``` +/// +/// # Diagram +/// +/// The following diagram shows the normal distribution with various parameters. +/// +/// ![Normal distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/normal.png"))] #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct StandardNormal; From 52719b45952e1dc53be4a0ab5812cb3b09d4f6aa Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 14:06:20 +0200 Subject: [PATCH 05/29] Add back python code in new dir --- rand_distr/plots/py/main.py | 343 +++++++++++++++++++++++++++ rand_distr/plots/py/requirements.txt | 3 + 2 files changed, 346 insertions(+) create mode 100644 rand_distr/plots/py/main.py create mode 100644 rand_distr/plots/py/requirements.txt diff --git a/rand_distr/plots/py/main.py b/rand_distr/plots/py/main.py new file mode 100644 index 0000000000..78526e1f03 --- /dev/null +++ b/rand_distr/plots/py/main.py @@ -0,0 +1,343 @@ +import numpy as np +import matplotlib.pyplot as plt + + +OUT = "target" +EXT = "png" + + +def standard_normal(): + from scipy.stats import norm + # Possible values for the distribution + x = np.linspace(-3, 3, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for the standard normal distribution + ax.plot(x, norm.pdf(x), label='Standard normal') + + # Adding title and labels + ax.set_title('Standard normal distribution') + ax.set_xlabel('Z-score (standard deviations from the mean)') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/standard_normal.{EXT}") + plt.close() + + +def normal(): + # Defining the normal distribution PDF + def y(mu, sigma, x): + from scipy.stats import norm + return norm.pdf(x, loc=mu, scale=sigma) + + inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] + # Possible values for the distribution + x = np.linspace(-5, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of mu and sigma + for mu, sigma in inputs: + ax.plot(x, y(mu, sigma, x), label=f'μ = {mu}, σ = {sigma}') + + # Adding title and labels + ax.set_title('Normal distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/normal.{EXT}") + plt.close() + + +def chi_squared(): + def y(x, df): + from scipy.stats import chi2 + y = chi2.pdf(x, df) + y[y > 1.0] = np.nan + return y + # Degrees of freedom for the distribution + df_values = [1, 2, 3, 5, 9] + # Possible values for the distribution + x = np.linspace(0, 10, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of the degrees of freedom + for df in df_values: + ax.plot(x, y(x, df), label=f'k = {df}') + + # Adding title and labels + ax.set_title('Chi-squared distribution') + ax.set_xlabel('Chi-squared statistic') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/chi_squared.{EXT}") + plt.close() + + +def binomial(): + # Defining the Binomial distribution PMF + def y(n, p, k): + from scipy.stats import binom + return binom.pmf(k, n, p) + + inputs = [(10, 0.2), (10, 0.6)] + # Possible outcomes for a Binomial distributed variable + outcomes = np.arange(0, 11) + width = 0.5 + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PMF for each value of n and p + for i, (n, p) in enumerate(inputs): + ax.bar(outcomes + i * width - width / 2, y(n, p, outcomes), width=width, label=f'n = {n}, p = {p}') + + # Adding title and labels + ax.set_title('Binomial distribution') + ax.set_xlabel('k (number of successes)') + ax.set_ylabel('Probability') + ax.set_xticks(outcomes) # set the ticks to be the outcome values + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/binomial.{EXT}") + plt.close() + + +def cauchy(): + # Possible values for the distribution + x = np.linspace(-7, 7, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] + + # Plotting the PDF for the Cauchy distribution + for x0, gamma in inputs: + ax.plot(x, 1 / (np.pi * gamma * (1 + ((x - x0) / gamma)**2)), label=f'x₀ = {x0}, γ = {gamma}') + + # Adding title and labels + ax.set_title('Cauchy distribution') + ax.set_xlabel('x') + ax.set_ylabel('P(x)') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/cauchy.{EXT}") + plt.close() + + +def dirichlet(): + def plot_dirichlet(alpha, ax): + """ + Plots a Dirichlet distribution given alpha parameters and axis. + """ + # Create a 2D meshgrid of points + resolution = 200 # Resolution of the visualization + x = np.linspace(0, 1, resolution) + y = np.linspace(0, 1, resolution) + X, Y = np.meshgrid(x, y) + # Flatten the grid to pass to the distribution + XY = np.vstack((X.flatten(), Y.flatten())) + + # Calculate remaining coordinate for the 3-simplex (3D Dirichlet is defined on a triangle in 2D) + Z = 1 - X - Y + # Filter out points outside the triangle + valid = (Z >= 0) + # Prepare the probability density function (PDF) array + PDF = np.zeros(X.shape).flatten() + + # Calculate PDF only for valid points + if np.any(valid): + from scipy.stats import dirichlet + # The 3rd coordinate for the Dirichlet distribution + Z_valid = Z.flatten()[valid] + # Stack the coordinates for the distribution input + XYZ_valid = np.vstack((XY[:, valid], Z_valid)) + # Calculate the Dirichlet PDF + PDF[valid] = dirichlet.pdf(XYZ_valid.T, alpha) + + # Reshape PDF back into the 2D shape of the grid + PDF = PDF.reshape(X.shape) + + # Create a contour plot on the provided axis + contour = ax.contourf(X, Y, PDF, levels=15, cmap='Blues') + # Add a colorbar + plt.colorbar(contour, ax=ax, pad=0.05, aspect=10) + # Set limits and labels + ax.set_xlim(0, 1) + ax.set_ylim(0, 1) + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_xlabel(r'$x_1$', fontsize=12) + ax.set_ylabel(r'$x_2$', fontsize=12) + # Set title for the subplot + ax.set_title(r'$\alpha = {}$'.format(alpha), fontsize=14) + + # Define alpha parameters for the Dirichlet distributions to be plotted + alpha_params = [ + (1.5, 1.5, 1.5), + (5.0, 5.0, 5.0), + (1.0, 2.0, 2.0), + (2.0, 4.0, 8.0) + ] + + # Create a figure with subplots + fig, axes = plt.subplots(2, 2, figsize=(10, 8)) + + # Loop through the list of alpha parameters + for alpha, ax in zip(alpha_params, axes.flatten()): + plot_dirichlet(alpha, ax) + + plt.savefig(f"{OUT}/dirichlet.{EXT}") + plt.close() + + +def exponential(): + # Defining the Exponential distribution PDF + def y(lmbda, x): + from scipy.stats import expon + return expon.pdf(x, scale=1 / lmbda) + + # Possible values of lambda for the distribution + lambda_values = [0.5, 1, 2] + # Possible values for the distribution + x = np.linspace(0, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of lambda + for lmbda in lambda_values: + ax.plot(x, y(lmbda, x), label=f'λ = {lmbda}') + + # Adding title and labels + ax.set_title('Exponential distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/exponential.{EXT}") + plt.close() + + +def gamma(): + # Defining the Gamma distribution PDF + def y(k, theta, x): + from scipy.stats import gamma + return gamma.pdf(x, k, scale=theta) + + inputs = [(1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 2)] + # Possible values for the distribution + x = np.linspace(0, 7, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of alpha and beta + for k, theta in inputs: + ax.plot(x, y(k, theta, x), label=f'k = {k}, θ = {theta}') + + # Adding title and labels + ax.set_title('Gamma distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/gamma.{EXT}") + plt.close() + + +def poisson(): + # Defining the Poisson distribution PMF + def y(lmbda, k): + from scipy.stats import poisson + return poisson.pmf(k, lmbda) + + # Possible values of lambda for the distribution + lambda_values = [0.5, 1, 2, 4, 10] + # Possible outcomes for a Poisson distributed variable + outcomes = np.arange(0, 15) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PMF for each value of lambda + for i, lmbda in enumerate(lambda_values): + ax.plot(outcomes, y(lmbda, outcomes), 'o-', label=f'λ = {lmbda}') + + # Adding title and labels + ax.set_title('Poisson distribution') + ax.set_xlabel('Outcome') + ax.set_ylabel('Probability') + ax.set_xticks(outcomes) # set the ticks to be the outcome values + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/poisson.{EXT}") + plt.close() + + +def weibull(): + # Defining the Weibull distribution PDF + def y(alpha, x): + from scipy.stats import weibull_min + return weibull_min.pdf(x, alpha) + + # Possible values of alpha for the distribution + alpha_values = [0.5, 1, 2] + # Possible values for the distribution + x = np.linspace(0, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of alpha + for alpha in alpha_values: + ax.plot(x, y(alpha, x), label=f'α = {alpha}') + + # Adding title and labels + ax.set_title('Weibull distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/weibull.{EXT}") + plt.close() + + +if __name__ == "__main__": + # standard_normal() + normal() + # chi_squared() + # binomial() + # cauchy() + # dirichlet() + # exponential() + # gamma() + # poisson() + # weibull() diff --git a/rand_distr/plots/py/requirements.txt b/rand_distr/plots/py/requirements.txt new file mode 100644 index 0000000000..f1161d4889 --- /dev/null +++ b/rand_distr/plots/py/requirements.txt @@ -0,0 +1,3 @@ +numpy==1.26.4 +matplotlib==3.8.4 +scipy==1.13.0 \ No newline at end of file From f656d8238dbb11e11b70f07d275b2c14e13844d9 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 14:17:34 +0200 Subject: [PATCH 06/29] Switch to svg files --- rand_distr/plots/binomial.png | Bin 20648 -> 0 bytes rand_distr/plots/binomial.svg | 1427 +++++++++++++++++++++++++ rand_distr/plots/cauchy.png | Bin 42392 -> 0 bytes rand_distr/plots/cauchy.svg | 1390 ++++++++++++++++++++++++ rand_distr/plots/chi_squared.png | Bin 40453 -> 0 bytes rand_distr/plots/chi_squared.svg | 1336 +++++++++++++++++++++++ rand_distr/plots/exponential.png | Bin 32953 -> 0 bytes rand_distr/plots/exponential.svg | 1112 +++++++++++++++++++ rand_distr/plots/gamma.png | Bin 48998 -> 0 bytes rand_distr/plots/gamma.svg | 1453 +++++++++++++++++++++++++ rand_distr/plots/normal.png | Bin 44523 -> 0 bytes rand_distr/plots/normal.svg | 1432 +++++++++++++++++++++++++ rand_distr/plots/poisson.png | Bin 45581 -> 0 bytes rand_distr/plots/poisson.svg | 1473 ++++++++++++++++++++++++++ rand_distr/plots/py/main.py | 18 +- rand_distr/plots/standard_normal.svg | 1109 +++++++++++++++++++ rand_distr/src/binomial.rs | 2 +- rand_distr/src/cauchy.rs | 2 +- rand_distr/src/exponential.rs | 2 +- rand_distr/src/gamma.rs | 4 +- rand_distr/src/normal.rs | 14 +- 21 files changed, 10759 insertions(+), 15 deletions(-) delete mode 100644 rand_distr/plots/binomial.png create mode 100644 rand_distr/plots/binomial.svg delete mode 100644 rand_distr/plots/cauchy.png create mode 100644 rand_distr/plots/cauchy.svg delete mode 100644 rand_distr/plots/chi_squared.png create mode 100644 rand_distr/plots/chi_squared.svg delete mode 100644 rand_distr/plots/exponential.png create mode 100644 rand_distr/plots/exponential.svg delete mode 100644 rand_distr/plots/gamma.png create mode 100644 rand_distr/plots/gamma.svg delete mode 100644 rand_distr/plots/normal.png create mode 100644 rand_distr/plots/normal.svg delete mode 100644 rand_distr/plots/poisson.png create mode 100644 rand_distr/plots/poisson.svg create mode 100644 rand_distr/plots/standard_normal.svg diff --git a/rand_distr/plots/binomial.png b/rand_distr/plots/binomial.png deleted file mode 100644 index fae6b7cc5484c0e282d383f888247657d61495e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20648 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 D_kwCg diff --git a/rand_distr/plots/binomial.svg b/rand_distr/plots/binomial.svg new file mode 100644 index 0000000000..b5ceb8b1b6 --- /dev/null +++ b/rand_distr/plots/binomial.svg @@ -0,0 +1,1427 @@ + + + + + + + + 2024-04-10T14:07:37.403534 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/cauchy.png b/rand_distr/plots/cauchy.png deleted file mode 100644 index fd79581768ae41b5b18aebc67bddb0cea3b180f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42392 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 O>sO=S&b~Fg9P@87X~4_? diff --git a/rand_distr/plots/cauchy.svg b/rand_distr/plots/cauchy.svg new file mode 100644 index 0000000000..4b240d9343 --- /dev/null +++ b/rand_distr/plots/cauchy.svg @@ -0,0 +1,1390 @@ + + + + + + + + 2024-04-10T14:07:37.550976 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/chi_squared.png b/rand_distr/plots/chi_squared.png deleted file mode 100644 index 582e5a5886c9eb0ebd72cc149d8d4c78018d72f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40453 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

0+1mZ=$*1@ojjh$ha}6RREia~FN%jzeHK5B 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 =#Xk-31k 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 AAOHXW diff --git a/rand_distr/plots/chi_squared.svg b/rand_distr/plots/chi_squared.svg new file mode 100644 index 0000000000..003c59aab5 --- /dev/null +++ b/rand_distr/plots/chi_squared.svg @@ -0,0 +1,1336 @@ + + + + + + + + 2024-04-10T14:07:37.230290 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/exponential.png b/rand_distr/plots/exponential.png deleted file mode 100644 index f625caa27e457bd1cc5b7e63d3efaaea04849e0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32953 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 P1%G6u<)!j&>H7XJO4+EI diff --git a/rand_distr/plots/exponential.svg b/rand_distr/plots/exponential.svg new file mode 100644 index 0000000000..8cba6e740b --- /dev/null +++ b/rand_distr/plots/exponential.svg @@ -0,0 +1,1112 @@ + + + + + + + + 2024-04-10T14:07:37.703063 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/gamma.png b/rand_distr/plots/gamma.png deleted file mode 100644 index 4f32fd2b2b1f96cf86aa1ba9975c7883a25b445b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48998 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

%%7IggnR z&9ps!{MK@*`OfFsfbXVX-tkZSiwv(*N$}kd$~P?$`;&Qurz_#T)~KbZaxzL4!`A)2 z8UNR?&`{$RUHS^0Ce`0(cEn_nO7STer1=O60aAszP0(8fOx3K>)y=?yr`s_hOaReXH|qbs zqy6YgNl{VI%8DigiNF*Xs4sM}gs(blP;H*w6FPg)OKY1I2&v)p>V z2Civon5LpR_TSqa;6Rm#p7FNNui&}cub#DLo3vyd;k%>tyxdc?TLE@l7|L;E56H+IuwEnoU3I+uDk`$E_`6i_A|Gxl0DHBit diff --git a/rand_distr/plots/gamma.svg b/rand_distr/plots/gamma.svg new file mode 100644 index 0000000000..f3512031fc --- /dev/null +++ b/rand_distr/plots/gamma.svg @@ -0,0 +1,1453 @@ + + + + + + + + 2024-04-10T14:07:37.850197 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/normal.png b/rand_distr/plots/normal.png deleted file mode 100644 index 515d56934ea9e26119d0a5c442f3230e29837f5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44523 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 diff --git a/rand_distr/plots/normal.svg b/rand_distr/plots/normal.svg new file mode 100644 index 0000000000..0db1db155c --- /dev/null +++ b/rand_distr/plots/normal.svg @@ -0,0 +1,1432 @@ + + + + + + + + 2024-04-10T14:07:37.073713 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/poisson.png b/rand_distr/plots/poisson.png deleted file mode 100644 index 0a7d4878f04719f79dd6008801be2dd0cb865a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45581 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 Pfj{?URb_IejlKU1i)NYk diff --git a/rand_distr/plots/poisson.svg b/rand_distr/plots/poisson.svg new file mode 100644 index 0000000000..6651cff8e2 --- /dev/null +++ b/rand_distr/plots/poisson.svg @@ -0,0 +1,1473 @@ + + + + + + + + 2024-04-10T14:07:38.059399 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/plots/py/main.py b/rand_distr/plots/py/main.py index 78526e1f03..7f6737c8f1 100644 --- a/rand_distr/plots/py/main.py +++ b/rand_distr/plots/py/main.py @@ -3,23 +3,27 @@ OUT = "target" -EXT = "png" +EXT = "svg" def standard_normal(): - from scipy.stats import norm + # Defining the standard normal distribution PDF + def y(x): + from scipy.stats import norm + return norm.pdf(x) + # Possible values for the distribution - x = np.linspace(-3, 3, 1000) + x = np.linspace(-5, 5, 1000) # Creating the figure and the axis fig, ax = plt.subplots() # Plotting the PDF for the standard normal distribution - ax.plot(x, norm.pdf(x), label='Standard normal') + ax.plot(x, y(x), label=f'μ = 0, σ = 1') # Adding title and labels ax.set_title('Standard normal distribution') - ax.set_xlabel('Z-score (standard deviations from the mean)') + ax.set_xlabel('x') ax.set_ylabel('Probability density') # Adding a legend @@ -331,8 +335,8 @@ def y(alpha, x): if __name__ == "__main__": - # standard_normal() - normal() + standard_normal() + # normal() # chi_squared() # binomial() # cauchy() diff --git a/rand_distr/plots/standard_normal.svg b/rand_distr/plots/standard_normal.svg new file mode 100644 index 0000000000..148a7042f3 --- /dev/null +++ b/rand_distr/plots/standard_normal.svg @@ -0,0 +1,1109 @@ + + + + + + + + 2024-04-10T14:13:57.075687 + image/svg+xml + + + Matplotlib v3.8.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 4028a5d4fc..8919c6a094 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -37,7 +37,7 @@ use num_traits::Float; /// `k` successes out of `n = 10` trials with `p = 0.2` and `p = 0.6` for each `k` from 0 to `n`. /// /// ![Binomial distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/binomial.png"))] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/binomial.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Binomial { diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 11828ed01e..60f5dfb171 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -37,7 +37,7 @@ use core::fmt; /// The diagram shows the Cauchy distribution with various parameters. /// /// ![Cauchy distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/cauchy.png"))] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/cauchy.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Cauchy diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index e24f12b5c5..35000fb718 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -97,7 +97,7 @@ impl Distribution for Exp1 { /// The diagram shows the exponential distribution with `λ = 0.5`, `λ = 1` and `λ = 2`. /// /// ![Exponential distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/exponential.png"))] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/exponential.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 50ba293006..e11b6a7a29 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -60,7 +60,7 @@ use serde::{Serialize, Deserialize}; /// Generating Gamma Variables" *ACM Trans. Math. Softw.* 26, 3 /// (September 2000), 363-372. /// DOI:[10.1145/358407.358414](https://doi.acm.org/10.1145/358407.358414) -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/gamma.png"))] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/gamma.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Gamma @@ -293,7 +293,7 @@ where /// The diagram shows the chi-squared distribution with varying degrees of freedom. /// /// ![Chi-squared distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/chi_squared.png"))] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/chi_squared.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct ChiSquared diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 55d69bc657..4da03fe039 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -39,10 +39,10 @@ use core::fmt; /// /// # Diagram /// -/// The following diagram shows the normal distribution with various parameters. +/// The following diagram shows the standard normal distribution. /// -/// ![Normal distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/normal.png"))] +/// ![Standard normal distribution][diagram] +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/standard_normal.svg"))] #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct StandardNormal; @@ -118,7 +118,15 @@ impl Distribution for StandardNormal { /// println!("{} is from a N(2, 9) distribution", v) /// ``` /// +/// # Diagram +/// +/// The following diagram shows the normal distribution with various parameters. +/// [`StandardNormal`] is illustrated in `μ = 0` and `σ = 1`. +/// +/// ![Normal distribution][diagram] +/// /// [`StandardNormal`]: crate::StandardNormal +#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/normal.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Normal From bcc0228c0d6cbdccb72e84a9171f1ed23357ebf8 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 15:40:48 +0200 Subject: [PATCH 07/29] Exclude py src from package --- rand_distr/Cargo.toml | 2 +- rand_distr/src/normal.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rand_distr/Cargo.toml b/rand_distr/Cargo.toml index cf9872aa88..546b76316f 100644 --- a/rand_distr/Cargo.toml +++ b/rand_distr/Cargo.toml @@ -14,7 +14,7 @@ keywords = ["random", "rng", "distribution", "probability"] categories = ["algorithms", "no-std"] edition = "2021" rust-version = "1.61" -include = ["src/", "LICENSE-*", "README.md", "CHANGELOG.md", "COPYRIGHT"] +include = ["/src", "LICENSE-*", "README.md", "CHANGELOG.md", "COPYRIGHT"] [package.metadata.docs.rs] rustdoc-args = ["--generate-link-to-definition"] diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 4da03fe039..357c48f2f4 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -42,6 +42,7 @@ use core::fmt; /// The following diagram shows the standard normal distribution. /// /// ![Standard normal distribution][diagram] +/// #[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/standard_normal.svg"))] #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] From 6dc035c5bb05d31a4df68b7bba27cef60fdb26d6 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 15:49:19 +0200 Subject: [PATCH 08/29] Add python method stubs for all dists --- rand_distr/plots/py/main.py | 300 ++++++++++++++++++++++++------------ 1 file changed, 205 insertions(+), 95 deletions(-) diff --git a/rand_distr/plots/py/main.py b/rand_distr/plots/py/main.py index 7f6737c8f1..ff67035590 100644 --- a/rand_distr/plots/py/main.py +++ b/rand_distr/plots/py/main.py @@ -6,92 +6,6 @@ EXT = "svg" -def standard_normal(): - # Defining the standard normal distribution PDF - def y(x): - from scipy.stats import norm - return norm.pdf(x) - - # Possible values for the distribution - x = np.linspace(-5, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for the standard normal distribution - ax.plot(x, y(x), label=f'μ = 0, σ = 1') - - # Adding title and labels - ax.set_title('Standard normal distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/standard_normal.{EXT}") - plt.close() - - -def normal(): - # Defining the normal distribution PDF - def y(mu, sigma, x): - from scipy.stats import norm - return norm.pdf(x, loc=mu, scale=sigma) - - inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] - # Possible values for the distribution - x = np.linspace(-5, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of mu and sigma - for mu, sigma in inputs: - ax.plot(x, y(mu, sigma, x), label=f'μ = {mu}, σ = {sigma}') - - # Adding title and labels - ax.set_title('Normal distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/normal.{EXT}") - plt.close() - - -def chi_squared(): - def y(x, df): - from scipy.stats import chi2 - y = chi2.pdf(x, df) - y[y > 1.0] = np.nan - return y - # Degrees of freedom for the distribution - df_values = [1, 2, 3, 5, 9] - # Possible values for the distribution - x = np.linspace(0, 10, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of the degrees of freedom - for df in df_values: - ax.plot(x, y(x, df), label=f'k = {df}') - - # Adding title and labels - ax.set_title('Chi-squared distribution') - ax.set_xlabel('Chi-squared statistic') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/chi_squared.{EXT}") - plt.close() - - def binomial(): # Defining the Binomial distribution PMF def y(n, p, k): @@ -244,6 +158,14 @@ def y(lmbda, x): plt.close() +def exponential_exp1(): + pass + + +def frechet(): + pass + + def gamma(): # Defining the Gamma distribution PDF def y(k, theta, x): @@ -273,6 +195,140 @@ def y(k, theta, x): plt.close() +def chi_squared(): + def y(x, df): + from scipy.stats import chi2 + y = chi2.pdf(x, df) + y[y > 1.0] = np.nan + return y + # Degrees of freedom for the distribution + df_values = [1, 2, 3, 5, 9] + # Possible values for the distribution + x = np.linspace(0, 10, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of the degrees of freedom + for df in df_values: + ax.plot(x, y(x, df), label=f'k = {df}') + + # Adding title and labels + ax.set_title('Chi-squared distribution') + ax.set_xlabel('Chi-squared statistic') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/chi_squared.{EXT}") + plt.close() + + +def fisher_f(): + pass + + +def student_t(): + pass + + +def beta(): + pass + + +def geometric(): + pass + + +def standard_geometric(): + pass + + +def gumbel(): + pass + + +def hypergeometric(): + pass + + +def inverse_gaussian(): + pass + + +def normal(): + # Defining the normal distribution PDF + def y(mu, sigma, x): + from scipy.stats import norm + return norm.pdf(x, loc=mu, scale=sigma) + + inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] + # Possible values for the distribution + x = np.linspace(-5, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for each value of mu and sigma + for mu, sigma in inputs: + ax.plot(x, y(mu, sigma, x), label=f'μ = {mu}, σ = {sigma}') + + # Adding title and labels + ax.set_title('Normal distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/normal.{EXT}") + plt.close() + + +def standard_normal(): + # Defining the standard normal distribution PDF + def y(x): + from scipy.stats import norm + return norm.pdf(x) + + # Possible values for the distribution + x = np.linspace(-5, 5, 1000) + + # Creating the figure and the axis + fig, ax = plt.subplots() + + # Plotting the PDF for the standard normal distribution + ax.plot(x, y(x), label=f'μ = 0, σ = 1') + + # Adding title and labels + ax.set_title('Standard normal distribution') + ax.set_xlabel('x') + ax.set_ylabel('Probability density') + + # Adding a legend + ax.legend() + + plt.savefig(f"{OUT}/standard_normal.{EXT}") + plt.close() + + +def log_normal(): + pass + + +def normal_inverse_gaussian(): + pass + + +def pareto(): + pass + + +def pert(): + pass + + def poisson(): # Defining the Poisson distribution PMF def y(lmbda, k): @@ -304,6 +360,30 @@ def y(lmbda, k): plt.close() +def skew_normal(): + pass + + +def triangular(): + pass + + +def unit_ball(): + pass + + +def unit_circle(): + pass + + +def unit_disc(): + pass + + +def unit_sphere(): + pass + + def weibull(): # Defining the Weibull distribution PDF def y(alpha, x): @@ -334,14 +414,44 @@ def y(alpha, x): plt.close() +def zeta(): + pass + + +def zipf(): + pass + + if __name__ == "__main__": + binomial() + cauchy() + dirichlet() + exponential() + exponential_exp1() + frechet() + gamma() + chi_squared() + fisher_f() + student_t() + beta() + geometric() + standard_geometric() + gumbel() + hypergeometric() + inverse_gaussian() + normal() standard_normal() - # normal() - # chi_squared() - # binomial() - # cauchy() - # dirichlet() - # exponential() - # gamma() - # poisson() - # weibull() + log_normal() + normal_inverse_gaussian() + pareto() + pert() + poisson() + skew_normal() + triangular() + unit_ball() + unit_circle() + unit_disc() + unit_sphere() + weibull() + zeta() + zipf() From 00ba897ef03dc7de7913fcf5c199e4bd9f846027 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 19:02:59 +0200 Subject: [PATCH 09/29] Remove python and embedding --- rand_distr/Cargo.toml | 2 - rand_distr/plots/py/main.py | 457 --------------------------- rand_distr/plots/py/requirements.txt | 3 - rand_distr/src/binomial.rs | 7 +- rand_distr/src/cauchy.rs | 3 +- rand_distr/src/exponential.rs | 3 +- rand_distr/src/gamma.rs | 6 +- rand_distr/src/normal.rs | 7 +- 8 files changed, 9 insertions(+), 479 deletions(-) delete mode 100644 rand_distr/plots/py/main.py delete mode 100644 rand_distr/plots/py/requirements.txt diff --git a/rand_distr/Cargo.toml b/rand_distr/Cargo.toml index 546b76316f..a67acf95d7 100644 --- a/rand_distr/Cargo.toml +++ b/rand_distr/Cargo.toml @@ -25,14 +25,12 @@ std = ["alloc", "rand/std"] alloc = ["rand/alloc"] std_math = ["num-traits/std"] serde1 = ["serde", "rand/serde1"] -doc-images = ["embed-doc-image"] [dependencies] rand = { path = "..", version = "=0.9.0-alpha.1", default-features = false } num-traits = { version = "0.2", default-features = false, features = ["libm"] } serde = { version = "1.0.103", features = ["derive"], optional = true } serde_with = { version = "3.6.1", optional = true } -embed-doc-image = { version = "0.1.4", optional = true } [dev-dependencies] rand_pcg = { version = "=0.9.0-alpha.1", path = "../rand_pcg" } diff --git a/rand_distr/plots/py/main.py b/rand_distr/plots/py/main.py deleted file mode 100644 index ff67035590..0000000000 --- a/rand_distr/plots/py/main.py +++ /dev/null @@ -1,457 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt - - -OUT = "target" -EXT = "svg" - - -def binomial(): - # Defining the Binomial distribution PMF - def y(n, p, k): - from scipy.stats import binom - return binom.pmf(k, n, p) - - inputs = [(10, 0.2), (10, 0.6)] - # Possible outcomes for a Binomial distributed variable - outcomes = np.arange(0, 11) - width = 0.5 - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PMF for each value of n and p - for i, (n, p) in enumerate(inputs): - ax.bar(outcomes + i * width - width / 2, y(n, p, outcomes), width=width, label=f'n = {n}, p = {p}') - - # Adding title and labels - ax.set_title('Binomial distribution') - ax.set_xlabel('k (number of successes)') - ax.set_ylabel('Probability') - ax.set_xticks(outcomes) # set the ticks to be the outcome values - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/binomial.{EXT}") - plt.close() - - -def cauchy(): - # Possible values for the distribution - x = np.linspace(-7, 7, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] - - # Plotting the PDF for the Cauchy distribution - for x0, gamma in inputs: - ax.plot(x, 1 / (np.pi * gamma * (1 + ((x - x0) / gamma)**2)), label=f'x₀ = {x0}, γ = {gamma}') - - # Adding title and labels - ax.set_title('Cauchy distribution') - ax.set_xlabel('x') - ax.set_ylabel('P(x)') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/cauchy.{EXT}") - plt.close() - - -def dirichlet(): - def plot_dirichlet(alpha, ax): - """ - Plots a Dirichlet distribution given alpha parameters and axis. - """ - # Create a 2D meshgrid of points - resolution = 200 # Resolution of the visualization - x = np.linspace(0, 1, resolution) - y = np.linspace(0, 1, resolution) - X, Y = np.meshgrid(x, y) - # Flatten the grid to pass to the distribution - XY = np.vstack((X.flatten(), Y.flatten())) - - # Calculate remaining coordinate for the 3-simplex (3D Dirichlet is defined on a triangle in 2D) - Z = 1 - X - Y - # Filter out points outside the triangle - valid = (Z >= 0) - # Prepare the probability density function (PDF) array - PDF = np.zeros(X.shape).flatten() - - # Calculate PDF only for valid points - if np.any(valid): - from scipy.stats import dirichlet - # The 3rd coordinate for the Dirichlet distribution - Z_valid = Z.flatten()[valid] - # Stack the coordinates for the distribution input - XYZ_valid = np.vstack((XY[:, valid], Z_valid)) - # Calculate the Dirichlet PDF - PDF[valid] = dirichlet.pdf(XYZ_valid.T, alpha) - - # Reshape PDF back into the 2D shape of the grid - PDF = PDF.reshape(X.shape) - - # Create a contour plot on the provided axis - contour = ax.contourf(X, Y, PDF, levels=15, cmap='Blues') - # Add a colorbar - plt.colorbar(contour, ax=ax, pad=0.05, aspect=10) - # Set limits and labels - ax.set_xlim(0, 1) - ax.set_ylim(0, 1) - ax.set_xticks([]) - ax.set_yticks([]) - ax.set_xlabel(r'$x_1$', fontsize=12) - ax.set_ylabel(r'$x_2$', fontsize=12) - # Set title for the subplot - ax.set_title(r'$\alpha = {}$'.format(alpha), fontsize=14) - - # Define alpha parameters for the Dirichlet distributions to be plotted - alpha_params = [ - (1.5, 1.5, 1.5), - (5.0, 5.0, 5.0), - (1.0, 2.0, 2.0), - (2.0, 4.0, 8.0) - ] - - # Create a figure with subplots - fig, axes = plt.subplots(2, 2, figsize=(10, 8)) - - # Loop through the list of alpha parameters - for alpha, ax in zip(alpha_params, axes.flatten()): - plot_dirichlet(alpha, ax) - - plt.savefig(f"{OUT}/dirichlet.{EXT}") - plt.close() - - -def exponential(): - # Defining the Exponential distribution PDF - def y(lmbda, x): - from scipy.stats import expon - return expon.pdf(x, scale=1 / lmbda) - - # Possible values of lambda for the distribution - lambda_values = [0.5, 1, 2] - # Possible values for the distribution - x = np.linspace(0, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of lambda - for lmbda in lambda_values: - ax.plot(x, y(lmbda, x), label=f'λ = {lmbda}') - - # Adding title and labels - ax.set_title('Exponential distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/exponential.{EXT}") - plt.close() - - -def exponential_exp1(): - pass - - -def frechet(): - pass - - -def gamma(): - # Defining the Gamma distribution PDF - def y(k, theta, x): - from scipy.stats import gamma - return gamma.pdf(x, k, scale=theta) - - inputs = [(1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 2)] - # Possible values for the distribution - x = np.linspace(0, 7, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of alpha and beta - for k, theta in inputs: - ax.plot(x, y(k, theta, x), label=f'k = {k}, θ = {theta}') - - # Adding title and labels - ax.set_title('Gamma distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/gamma.{EXT}") - plt.close() - - -def chi_squared(): - def y(x, df): - from scipy.stats import chi2 - y = chi2.pdf(x, df) - y[y > 1.0] = np.nan - return y - # Degrees of freedom for the distribution - df_values = [1, 2, 3, 5, 9] - # Possible values for the distribution - x = np.linspace(0, 10, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of the degrees of freedom - for df in df_values: - ax.plot(x, y(x, df), label=f'k = {df}') - - # Adding title and labels - ax.set_title('Chi-squared distribution') - ax.set_xlabel('Chi-squared statistic') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/chi_squared.{EXT}") - plt.close() - - -def fisher_f(): - pass - - -def student_t(): - pass - - -def beta(): - pass - - -def geometric(): - pass - - -def standard_geometric(): - pass - - -def gumbel(): - pass - - -def hypergeometric(): - pass - - -def inverse_gaussian(): - pass - - -def normal(): - # Defining the normal distribution PDF - def y(mu, sigma, x): - from scipy.stats import norm - return norm.pdf(x, loc=mu, scale=sigma) - - inputs = [(0, 0.5), (0, 1), (0, 2), (-2, 1)] - # Possible values for the distribution - x = np.linspace(-5, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of mu and sigma - for mu, sigma in inputs: - ax.plot(x, y(mu, sigma, x), label=f'μ = {mu}, σ = {sigma}') - - # Adding title and labels - ax.set_title('Normal distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/normal.{EXT}") - plt.close() - - -def standard_normal(): - # Defining the standard normal distribution PDF - def y(x): - from scipy.stats import norm - return norm.pdf(x) - - # Possible values for the distribution - x = np.linspace(-5, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for the standard normal distribution - ax.plot(x, y(x), label=f'μ = 0, σ = 1') - - # Adding title and labels - ax.set_title('Standard normal distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/standard_normal.{EXT}") - plt.close() - - -def log_normal(): - pass - - -def normal_inverse_gaussian(): - pass - - -def pareto(): - pass - - -def pert(): - pass - - -def poisson(): - # Defining the Poisson distribution PMF - def y(lmbda, k): - from scipy.stats import poisson - return poisson.pmf(k, lmbda) - - # Possible values of lambda for the distribution - lambda_values = [0.5, 1, 2, 4, 10] - # Possible outcomes for a Poisson distributed variable - outcomes = np.arange(0, 15) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PMF for each value of lambda - for i, lmbda in enumerate(lambda_values): - ax.plot(outcomes, y(lmbda, outcomes), 'o-', label=f'λ = {lmbda}') - - # Adding title and labels - ax.set_title('Poisson distribution') - ax.set_xlabel('Outcome') - ax.set_ylabel('Probability') - ax.set_xticks(outcomes) # set the ticks to be the outcome values - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/poisson.{EXT}") - plt.close() - - -def skew_normal(): - pass - - -def triangular(): - pass - - -def unit_ball(): - pass - - -def unit_circle(): - pass - - -def unit_disc(): - pass - - -def unit_sphere(): - pass - - -def weibull(): - # Defining the Weibull distribution PDF - def y(alpha, x): - from scipy.stats import weibull_min - return weibull_min.pdf(x, alpha) - - # Possible values of alpha for the distribution - alpha_values = [0.5, 1, 2] - # Possible values for the distribution - x = np.linspace(0, 5, 1000) - - # Creating the figure and the axis - fig, ax = plt.subplots() - - # Plotting the PDF for each value of alpha - for alpha in alpha_values: - ax.plot(x, y(alpha, x), label=f'α = {alpha}') - - # Adding title and labels - ax.set_title('Weibull distribution') - ax.set_xlabel('x') - ax.set_ylabel('Probability density') - - # Adding a legend - ax.legend() - - plt.savefig(f"{OUT}/weibull.{EXT}") - plt.close() - - -def zeta(): - pass - - -def zipf(): - pass - - -if __name__ == "__main__": - binomial() - cauchy() - dirichlet() - exponential() - exponential_exp1() - frechet() - gamma() - chi_squared() - fisher_f() - student_t() - beta() - geometric() - standard_geometric() - gumbel() - hypergeometric() - inverse_gaussian() - normal() - standard_normal() - log_normal() - normal_inverse_gaussian() - pareto() - pert() - poisson() - skew_normal() - triangular() - unit_ball() - unit_circle() - unit_disc() - unit_sphere() - weibull() - zeta() - zipf() diff --git a/rand_distr/plots/py/requirements.txt b/rand_distr/plots/py/requirements.txt deleted file mode 100644 index f1161d4889..0000000000 --- a/rand_distr/plots/py/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -numpy==1.26.4 -matplotlib==3.8.4 -scipy==1.13.0 \ No newline at end of file diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 8919c6a094..c92b9c2395 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -32,12 +32,11 @@ use num_traits::Float; /// ``` /// /// # Diagram -/// -/// The following diagram of the binomial distribution illustrates the probability of +/// +/// The following diagram of the binomial distribution illustrates the probability of /// `k` successes out of `n = 10` trials with `p = 0.2` and `p = 0.6` for each `k` from 0 to `n`. /// -/// ![Binomial distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/binomial.svg"))] +/// ![Binomial distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Binomial { diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 60f5dfb171..496de47b09 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -36,8 +36,7 @@ use core::fmt; /// /// The diagram shows the Cauchy distribution with various parameters. /// -/// ![Cauchy distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/cauchy.svg"))] +/// ![Cauchy distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Cauchy diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 35000fb718..71fd9a07ad 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -96,8 +96,7 @@ impl Distribution for Exp1 { /// /// The diagram shows the exponential distribution with `λ = 0.5`, `λ = 1` and `λ = 2`. /// -/// ![Exponential distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/exponential.svg"))] +/// ![Exponential distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index e11b6a7a29..59bdeaceee 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -54,13 +54,12 @@ use serde::{Serialize, Deserialize}; /// /// The diagram shows the Gamma distribution with varying shape and scale. /// -/// ![Gamma distribution][diagram] +/// ![Gamma distribution]() /// /// [^1]: George Marsaglia and Wai Wan Tsang. 2000. "A Simple Method for /// Generating Gamma Variables" *ACM Trans. Math. Softw.* 26, 3 /// (September 2000), 363-372. /// DOI:[10.1145/358407.358414](https://doi.acm.org/10.1145/358407.358414) -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/gamma.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct Gamma @@ -292,8 +291,7 @@ where /// /// The diagram shows the chi-squared distribution with varying degrees of freedom. /// -/// ![Chi-squared distribution][diagram] -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/chi_squared.svg"))] +/// ![Chi-squared distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct ChiSquared diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 357c48f2f4..052d06b4d0 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -41,9 +41,7 @@ use core::fmt; /// /// The following diagram shows the standard normal distribution. /// -/// ![Standard normal distribution][diagram] -/// -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/standard_normal.svg"))] +/// ![Standard normal distribution]() #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct StandardNormal; @@ -124,10 +122,9 @@ impl Distribution for StandardNormal { /// The following diagram shows the normal distribution with various parameters. /// [`StandardNormal`] is illustrated in `μ = 0` and `σ = 1`. /// -/// ![Normal distribution][diagram] +/// ![Normal distribution]() /// /// [`StandardNormal`]: crate::StandardNormal -#[cfg_attr(feature = "doc-images", doc = embed_doc_image::embed_image!("diagram", "plots/normal.svg"))] #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Normal From 6bc8145c7fb3c39c3db25a55d4eb831e8f643a2d Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 10 Apr 2024 19:03:36 +0200 Subject: [PATCH 10/29] Remove plots --- rand_distr/plots/binomial.svg | 1427 ------------------------- rand_distr/plots/cauchy.svg | 1390 ------------------------ rand_distr/plots/chi_squared.svg | 1336 ----------------------- rand_distr/plots/exponential.svg | 1112 ------------------- rand_distr/plots/gamma.svg | 1453 ------------------------- rand_distr/plots/normal.svg | 1432 ------------------------- rand_distr/plots/poisson.svg | 1473 -------------------------- rand_distr/plots/standard_normal.svg | 1109 ------------------- 8 files changed, 10732 deletions(-) delete mode 100644 rand_distr/plots/binomial.svg delete mode 100644 rand_distr/plots/cauchy.svg delete mode 100644 rand_distr/plots/chi_squared.svg delete mode 100644 rand_distr/plots/exponential.svg delete mode 100644 rand_distr/plots/gamma.svg delete mode 100644 rand_distr/plots/normal.svg delete mode 100644 rand_distr/plots/poisson.svg delete mode 100644 rand_distr/plots/standard_normal.svg diff --git a/rand_distr/plots/binomial.svg b/rand_distr/plots/binomial.svg deleted file mode 100644 index b5ceb8b1b6..0000000000 --- a/rand_distr/plots/binomial.svg +++ /dev/null @@ -1,1427 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.403534 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/cauchy.svg b/rand_distr/plots/cauchy.svg deleted file mode 100644 index 4b240d9343..0000000000 --- a/rand_distr/plots/cauchy.svg +++ /dev/null @@ -1,1390 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.550976 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/chi_squared.svg b/rand_distr/plots/chi_squared.svg deleted file mode 100644 index 003c59aab5..0000000000 --- a/rand_distr/plots/chi_squared.svg +++ /dev/null @@ -1,1336 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.230290 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/exponential.svg b/rand_distr/plots/exponential.svg deleted file mode 100644 index 8cba6e740b..0000000000 --- a/rand_distr/plots/exponential.svg +++ /dev/null @@ -1,1112 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.703063 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/gamma.svg b/rand_distr/plots/gamma.svg deleted file mode 100644 index f3512031fc..0000000000 --- a/rand_distr/plots/gamma.svg +++ /dev/null @@ -1,1453 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.850197 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/normal.svg b/rand_distr/plots/normal.svg deleted file mode 100644 index 0db1db155c..0000000000 --- a/rand_distr/plots/normal.svg +++ /dev/null @@ -1,1432 +0,0 @@ - - - - - - - - 2024-04-10T14:07:37.073713 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/poisson.svg b/rand_distr/plots/poisson.svg deleted file mode 100644 index 6651cff8e2..0000000000 --- a/rand_distr/plots/poisson.svg +++ /dev/null @@ -1,1473 +0,0 @@ - - - - - - - - 2024-04-10T14:07:38.059399 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rand_distr/plots/standard_normal.svg b/rand_distr/plots/standard_normal.svg deleted file mode 100644 index 148a7042f3..0000000000 --- a/rand_distr/plots/standard_normal.svg +++ /dev/null @@ -1,1109 +0,0 @@ - - - - - - - - 2024-04-10T14:13:57.075687 - image/svg+xml - - - Matplotlib v3.8.4, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 741d82e7fe57e838f4d6a2436ea03986d520900f Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Thu, 11 Apr 2024 18:39:40 +0200 Subject: [PATCH 11/29] Documentation binomial to hypergeometric --- rand_distr/src/binomial.rs | 23 ++++++++---- rand_distr/src/cauchy.rs | 19 +++++++--- rand_distr/src/dirichlet.rs | 6 +++ rand_distr/src/exponential.rs | 20 +++++++--- rand_distr/src/frechet.rs | 13 ++++++- rand_distr/src/gamma.rs | 63 +++++++++++++++++++++++++++----- rand_distr/src/geometric.rs | 13 +++++++ rand_distr/src/gumbel.rs | 17 +++++++-- rand_distr/src/hypergeometric.rs | 8 ++++ 9 files changed, 148 insertions(+), 34 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index c92b9c2395..edb85b152c 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -17,10 +17,24 @@ use core::cmp::Ordering; use num_traits::Float; /// The binomial distribution `Binomial(n, p)`. +/// +/// The binomial distribution is a discrete probability distribution with +/// parameters `n` (number of trials) and `p` (probability of success). +/// Given some number of successes `k`, `Binomial(n, p)` describes the +/// probability of having `k` successes in `n` independent trials, +/// each of which has probability `p` to succeed. /// -/// This distribution has density function: +/// This distribution follows the density function: /// `f(k) = n!/(k! (n-k)!) p^k (1-p)^(n-k)` for `k >= 0`. /// +/// # Plot +/// +/// The following plot of the binomial distribution illustrates the +/// probability of `k` successes out of `n = 10` trials with `p = 0.2` +/// and `p = 0.6` for `0 <= k <= n`. +/// +/// +/// /// # Example /// /// ``` @@ -30,13 +44,6 @@ use num_traits::Float; /// let v = bin.sample(&mut rand::thread_rng()); /// println!("{} is from a binomial distribution", v); /// ``` -/// -/// # Diagram -/// -/// The following diagram of the binomial distribution illustrates the probability of -/// `k` successes out of `n = 10` trials with `p = 0.2` and `p = 0.6` for each `k` from 0 to `n`. -/// -/// ![Binomial distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Binomial { diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 496de47b09..89ad1fd5df 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -16,12 +16,25 @@ use core::fmt; /// The Cauchy distribution `Cauchy(median, scale)`. /// +/// The Cauchy distribution is a continuous probability distribution with +/// parameters `median` and `scale`. +/// /// This distribution has a density function: /// `f(x) = 1 / (pi * scale * (1 + ((x - median) / scale)^2))` /// /// Note that at least for `f32`, results are not fully portable due to minor /// differences in the target system's *tan* implementation, `tanf`. /// +/// # Plot +/// +/// The plot illustrates the Cauchy distribution with various parameters. +/// Note how the `median` parameter `x₀` shifts the distribution along the x-axis, +/// and the `scale` parameter `γ` changes the density around the median. +/// +/// The standard Cauchy distribution is the special case with `median = 0` and `scale = 1`. +/// +/// +/// /// # Example /// /// ``` @@ -31,12 +44,6 @@ use core::fmt; /// let v = cau.sample(&mut rand::thread_rng()); /// println!("{} is from a Cauchy(2, 5) distribution", v); /// ``` -/// -/// # Diagram -/// -/// The diagram shows the Cauchy distribution with various parameters. -/// -/// ![Cauchy distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Cauchy diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index 413c00476a..ee425c24cf 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -191,6 +191,12 @@ where /// The Dirichlet distribution is a family of continuous multivariate /// probability distributions parameterized by a vector alpha of positive reals. /// It is a multivariate generalization of the beta distribution. +/// +/// # Plot +/// +/// The following plot illustrates the Dirichlet distribution with various parameters. +/// +/// /// /// # Example /// diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 71fd9a07ad..701efa7bfb 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -21,6 +21,12 @@ use core::fmt; /// /// See `Exp` for the general exponential distribution. /// +/// # Plot +/// +/// The following plot illustrates the exponential distribution with `λ = 1`. +/// +/// +/// /// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact /// description in the paper was adjusted to use tables for the exponential /// distribution rather than normal. @@ -82,6 +88,14 @@ impl Distribution for Exp1 { /// /// Note that [`Exp1`](crate::Exp1) is an optimised implementation for `lambda = 1`. /// +/// # Plot +/// +/// The following plot illustrates the exponential distribution with +/// various values of `lambda`. +/// The `lambda` parameter controls the rate of decay as `x` approaches infinity. +/// +/// +/// /// # Example /// /// ``` @@ -91,12 +105,6 @@ impl Distribution for Exp1 { /// let v = exp.sample(&mut rand::thread_rng()); /// println!("{} is from a Exp(2) distribution", v); /// ``` -/// -/// # Diagram -/// -/// The diagram shows the exponential distribution with `λ = 0.5`, `λ = 1` and `λ = 2`. -/// -/// ![Exponential distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 781b7af164..bf114d3838 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -17,7 +17,18 @@ use rand::Rng; /// /// This distribution has density function: /// `f(x) = [(x - μ) / σ]^(-1 - α) exp[-(x - μ) / σ]^(-α) α / σ`, -/// where `μ` is the location parameter, `σ` the scale parameter, and `α` the shape parameter. +/// where `μ` is the location parameter, `σ` the scale parameter, +/// and `α` the shape parameter. +/// +/// # Plot +/// +/// The plot shows the Fréchet distribution with various parameters. +/// Note how the location parameter `μ` shifts the distribution along the x-axis, +/// the scale parameter `σ` stretches or compresses the distribution along the x-axis, +/// and the shape parameter `α` changes the severity of the increase in density +/// towards the lower bound. +/// +/// /// /// # Example /// ``` diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 59bdeaceee..7188d51e73 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -24,7 +24,7 @@ use core::fmt; #[cfg(feature = "serde1")] use serde::{Serialize, Deserialize}; -/// The Gamma distribution `Gamma(shape, scale)` distribution. +/// The Gamma distribution `Gamma(shape, scale)`. /// /// The density function of this distribution is /// @@ -35,6 +35,13 @@ use serde::{Serialize, Deserialize}; /// where `Γ` is the Gamma function, `k` is the shape and `θ` is the /// scale and both `k` and `θ` are strictly positive. /// +/// # Plot +/// +/// The following plot illustrates the Gamma distribution with +/// various parameters. +/// +/// +/// /// The algorithm used is that described by Marsaglia & Tsang 2000[^1], /// falling back to directly sampling from an Exponential for `shape /// == 1`, and using the boosting technique described in that paper for @@ -50,12 +57,6 @@ use serde::{Serialize, Deserialize}; /// println!("{} is from a Gamma(2, 5) distribution", v); /// ``` /// -/// # Diagram -/// -/// The diagram shows the Gamma distribution with varying shape and scale. -/// -/// ![Gamma distribution]() -/// /// [^1]: George Marsaglia and Wai Wan Tsang. 2000. "A Simple Method for /// Generating Gamma Variables" *ACM Trans. Math. Softw.* 26, 3 /// (September 2000), 363-372. @@ -277,6 +278,13 @@ where /// `k`, this uses the equivalent characterisation /// `χ²(k) = Gamma(k/2, 2)`. /// +/// # Plot +/// +/// The plot shows the chi-squared distribution with varying degrees +/// of freedom. +/// +/// +/// /// # Example /// /// ``` @@ -382,12 +390,18 @@ where } } -/// The Fisher F distribution `F(m, n)`. +/// The Fisher F-distribution `F(m, n)`. /// /// This distribution is equivalent to the ratio of two normalised /// chi-squared distributions, that is, `F(m,n) = (χ²(m)/m) / /// (χ²(n)/n)`. /// +/// # Plot +/// +/// The plot shows the F-distribution with various values of `m` and `n`. +/// +/// +/// /// # Example /// /// ``` @@ -472,8 +486,23 @@ where } } -/// The Student t distribution, `t(nu)`, where `nu` is the degrees of +/// The Student t-distribution, `t(nu)`, where `nu` is the degrees of /// freedom. +/// +/// This is a continuous probability distribution that arises when +/// estimating the mean of a normally-distributed population in +/// situations where the sample size is small and the population's +/// standard deviation is unknown. +/// +/// For `nu = 1`, this is equivalent to the standard [`Cauchy`](crate::Cauchy) distribution, +/// and as `nu` diverges to infinity, `t(nu)` converges to +/// [`StandardNormal`](crate::StandardNormal). +/// +/// # Plot +/// +/// The plot shows the t-distribution with various degrees of freedom. +/// +/// /// /// # Example /// @@ -560,7 +589,21 @@ struct BC { kappa2: N, } -/// The Beta distribution with shape parameters `alpha` and `beta`. +/// The Beta distribution `Beta(alpha, beta)`. +/// +/// The Beta distribution is a continuous probability distribution +/// defined on the interval `[0, 1]`. It is the conjugate prior for the +/// parameter `p` of the [`Binomial`][crate::Binomial] distribution. +/// +/// It has two shape parameters `α` and `β` which control the shape of +/// the distribution. The distribution is symmetric when `α = β`. +/// +/// # Plot +/// +/// The plot shows the Beta distribution with various combinations +/// of `α` and `β`. +/// +/// /// /// # Example /// diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index 5204013a5b..9c3ce09a21 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -18,6 +18,13 @@ use num_traits::Float; /// Note that [`StandardGeometric`](crate::StandardGeometric) is an optimised /// implementation for `p = 0.5`. /// +/// # Plot +/// +/// The following plot illustrates the geometric distribution for various values of `p`. +/// Note how the higher `p` is, the more likely it is to have a success early on. +/// +/// +/// /// # Example /// /// ``` @@ -145,6 +152,12 @@ impl Distribution for Geometric /// /// Implemented via iterated /// [`Rng::gen::().leading_zeros()`](Rng::gen::().leading_zeros()). +/// +/// # Plot +/// +/// The following plot illustrates the standard geometric distribution. +/// +/// /// /// # Example /// ``` diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index 4a83658692..8001b0b8e8 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -13,11 +13,22 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// Samples floating-point numbers according to the Gumbel distribution +/// The Gumbel distribution `Gumbel(location, scale)`. +/// +/// The Gumbel distribution is a continuous probability distribution with +/// location parameter `μ` and scale parameter `σ`. /// /// This distribution has density function: -/// `f(x) = exp(-(z + exp(-z))) / σ`, where `z = (x - μ) / σ`, -/// `μ` is the location parameter, and `σ` the scale parameter. +/// `f(x) = exp(-(z + exp(-z))) / σ`, where `z = (x - μ) / σ`. +/// +/// # Plot +/// +/// The following plot illustrates the Gumbel distribution with various parameters. +/// Note how the location parameter `μ` shifts the distribution along the x-axis, +/// and the scale parameter `σ` changes the density around `μ`. +/// Note also the asymptotic behavior of the distribution towards the right. +/// +/// /// /// # Example /// ``` diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index 73a8e91c75..9f5e664514 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -35,6 +35,14 @@ enum SamplingMethod { /// The [binomial distribution](crate::Binomial) is the analogous distribution /// for sampling with replacement. It is a good approximation when the population /// size is much larger than the sample size. +/// +/// # Plot +/// +/// The following plot of the hypergeometric distribution illustrates the probability of drawing +/// `k` successes in `n = 10` draws from a population of `N = 50` items, of which either `K = 12` +/// or `K = 25` are successes. +/// +/// /// /// # Example /// From af53cb280d6f609f4f9c122dbfcfc5524799d5a2 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Fri, 24 May 2024 14:09:37 +0200 Subject: [PATCH 12/29] Add rest of plots --- rand_distr/src/binomial.rs | 2 +- rand_distr/src/cauchy.rs | 2 +- rand_distr/src/dirichlet.rs | 2 +- rand_distr/src/exponential.rs | 4 +-- rand_distr/src/frechet.rs | 2 +- rand_distr/src/gamma.rs | 10 +++---- rand_distr/src/geometric.rs | 4 +-- rand_distr/src/gumbel.rs | 2 +- rand_distr/src/hypergeometric.rs | 2 +- rand_distr/src/inverse_gaussian.rs | 19 ++++++++++++ rand_distr/src/normal.rs | 36 +++++++++++------------ rand_distr/src/normal_inverse_gaussian.rs | 19 ++++++++++++ rand_distr/src/pareto.rs | 9 +++++- rand_distr/src/pert.rs | 6 ++++ rand_distr/src/poisson.rs | 6 ++++ rand_distr/src/skew_normal.rs | 6 ++++ rand_distr/src/triangular.rs | 6 ++++ rand_distr/src/unit_ball.rs | 5 ++++ rand_distr/src/unit_circle.rs | 5 ++++ rand_distr/src/unit_disc.rs | 5 ++++ rand_distr/src/unit_sphere.rs | 7 +++++ rand_distr/src/weibull.rs | 9 +++++- rand_distr/src/zipf.rs | 20 ++++++++++--- 23 files changed, 148 insertions(+), 40 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index edb85b152c..5ce7606b40 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -33,7 +33,7 @@ use num_traits::Float; /// probability of `k` successes out of `n = 10` trials with `p = 0.2` /// and `p = 0.6` for `0 <= k <= n`. /// -/// +/// ![Binomial distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/binomial.svg) /// /// # Example /// diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 89ad1fd5df..7de87e7da1 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -33,7 +33,7 @@ use core::fmt; /// /// The standard Cauchy distribution is the special case with `median = 0` and `scale = 1`. /// -/// +/// ![Cauchy distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/cauchy.svg) /// /// # Example /// diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index ee425c24cf..dfa60fe557 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -196,7 +196,7 @@ where /// /// The following plot illustrates the Dirichlet distribution with various parameters. /// -/// +/// ![Dirichlet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/dirichlet.png) /// /// # Example /// diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 701efa7bfb..de70215552 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -25,7 +25,7 @@ use core::fmt; /// /// The following plot illustrates the exponential distribution with `λ = 1`. /// -/// +/// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential_exp1.svg) /// /// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact /// description in the paper was adjusted to use tables for the exponential @@ -94,7 +94,7 @@ impl Distribution for Exp1 { /// various values of `lambda`. /// The `lambda` parameter controls the rate of decay as `x` approaches infinity. /// -/// +/// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential.svg) /// /// # Example /// diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index bf114d3838..1cf714a7b1 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -28,7 +28,7 @@ use rand::Rng; /// and the shape parameter `α` changes the severity of the increase in density /// towards the lower bound. /// -/// +/// ![Fréchet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/frechet.svg) /// /// # Example /// ``` diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 7188d51e73..509a1049d4 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -40,7 +40,7 @@ use serde::{Serialize, Deserialize}; /// The following plot illustrates the Gamma distribution with /// various parameters. /// -/// +/// ![Gamma distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/gamma.svg) /// /// The algorithm used is that described by Marsaglia & Tsang 2000[^1], /// falling back to directly sampling from an Exponential for `shape @@ -283,7 +283,7 @@ where /// The plot shows the chi-squared distribution with varying degrees /// of freedom. /// -/// +/// ![Chi-squared distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/chi_squared.svg) /// /// # Example /// @@ -400,7 +400,7 @@ where /// /// The plot shows the F-distribution with various values of `m` and `n`. /// -/// +/// ![F-distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/fisher_f.svg) /// /// # Example /// @@ -502,7 +502,7 @@ where /// /// The plot shows the t-distribution with various degrees of freedom. /// -/// +/// ![T-distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/student_t.svg) /// /// # Example /// @@ -603,7 +603,7 @@ struct BC { /// The plot shows the Beta distribution with various combinations /// of `α` and `β`. /// -/// +/// ![Beta distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/beta.svg) /// /// # Example /// diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index 9c3ce09a21..1792b94bb0 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -23,7 +23,7 @@ use num_traits::Float; /// The following plot illustrates the geometric distribution for various values of `p`. /// Note how the higher `p` is, the more likely it is to have a success early on. /// -/// +/// ![Geometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/geometric.svg) /// /// # Example /// @@ -157,7 +157,7 @@ impl Distribution for Geometric /// /// The following plot illustrates the standard geometric distribution. /// -/// +/// ![Standard Geometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/standard_geometric.svg) /// /// # Example /// ``` diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index 8001b0b8e8..9cdc6d07c6 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -28,7 +28,7 @@ use rand::Rng; /// and the scale parameter `σ` changes the density around `μ`. /// Note also the asymptotic behavior of the distribution towards the right. /// -/// +/// ![Gumbel distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/gumbel.svg) /// /// # Example /// ``` diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index 9f5e664514..d1dff9d710 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -42,7 +42,7 @@ enum SamplingMethod { /// `k` successes in `n = 10` draws from a population of `N = 50` items, of which either `K = 12` /// or `K = 25` are successes. /// -/// +/// ![Hypergeometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/hypergeometric.svg) /// /// # Example /// diff --git a/rand_distr/src/inverse_gaussian.rs b/rand_distr/src/inverse_gaussian.rs index ba845fd150..510beb8980 100644 --- a/rand_distr/src/inverse_gaussian.rs +++ b/rand_distr/src/inverse_gaussian.rs @@ -26,6 +26,25 @@ impl fmt::Display for Error { impl std::error::Error for Error {} /// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) +/// +/// This is a continuous probability distribution with two parameters, `mean` and `shape`, +/// defined for `x > 0`. +/// It is also known as the Wald distribution. +/// +/// # Plot +/// +/// The following plot shows the inverse Gaussian distribution with various parameters. +/// +/// ![Inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/inverse_gaussian.svg) +/// +/// # Example +/// ``` +/// use rand_distr::{InverseGaussian, Distribution}; +/// +/// let inv_gauss = InverseGaussian::new(1.0, 2.0).unwrap(); +/// let v = inv_gauss.sample(&mut rand::thread_rng()); +/// println!("{} is from a inverse Gaussian(1, 2) distribution", v); +/// ``` #[derive(Debug, Clone, Copy, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct InverseGaussian diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 052d06b4d0..b6fdf1d6bc 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -19,14 +19,15 @@ use core::fmt; /// `N(0, 1)` (a.k.a. a standard normal, or Gaussian). This is equivalent to /// `Normal::new(0.0, 1.0)` but faster. /// -/// See `Normal` for the general normal distribution. +/// See [`Normal`] for the general normal distribution. /// /// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. /// -/// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to -/// Generate Normal Random Samples*]( -/// https://www.doornik.com/research/ziggurat.pdf). -/// Nuffield College, Oxford +/// # Plot +/// +/// The following diagram shows the standard normal distribution. +/// +/// ![Standard normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal.svg) /// /// # Example /// ``` @@ -37,11 +38,10 @@ use core::fmt; /// println!("{}", val); /// ``` /// -/// # Diagram -/// -/// The following diagram shows the standard normal distribution. -/// -/// ![Standard normal distribution]() +/// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to +/// Generate Normal Random Samples*]( +/// https://www.doornik.com/research/ziggurat.pdf). +/// Nuffield College, Oxford #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct StandardNormal; @@ -106,6 +106,13 @@ impl Distribution for StandardNormal { /// Note that [`StandardNormal`] is an optimised implementation for mean 0, and /// standard deviation 1. /// +/// # Plot +/// +/// The following diagram shows the normal distribution with various parameters. +/// [`StandardNormal`] is illustrated with `μ = 0` and `σ = 1`. +/// +/// ![Normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal.svg) +/// /// # Example /// /// ``` @@ -116,15 +123,6 @@ impl Distribution for StandardNormal { /// let v = normal.sample(&mut rand::thread_rng()); /// println!("{} is from a N(2, 9) distribution", v) /// ``` -/// -/// # Diagram -/// -/// The following diagram shows the normal distribution with various parameters. -/// [`StandardNormal`] is illustrated in `μ = 0` and `σ = 1`. -/// -/// ![Normal distribution]() -/// -/// [`StandardNormal`]: crate::StandardNormal #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Normal diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 7c5ad97171..7d17432de3 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -26,6 +26,25 @@ impl fmt::Display for Error { impl std::error::Error for Error {} /// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) +/// +/// This is a continuous probability distribution with two parameters, `alpha` and `beta`, +/// defined for `(-∞, ∞)`. +/// It is also known as the normal-Wald distribution. +/// +/// # Plot +/// +/// The following plot shows the normal-inverse Gaussian distribution with various parameters. +/// +/// ![Normal-inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal_inverse_gaussian.svg) +/// +/// # Example +/// ``` +/// use rand_distr::{NormalInverseGaussian, Distribution}; +/// +/// let norm_inv_gauss = NormalInverseGaussian::new(2.0, 1.0).unwrap(); +/// let v = norm_inv_gauss.sample(&mut rand::thread_rng()); +/// println!("{} is from a normal-inverse Gaussian(2, 1) distribution", v); +/// ``` #[derive(Debug, Clone, Copy, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct NormalInverseGaussian diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index 25c8e0537d..59d1503636 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -13,7 +13,14 @@ use crate::{Distribution, OpenClosed01}; use rand::Rng; use core::fmt; -/// Samples floating-point numbers according to the Pareto distribution +/// The Pareto distribution is a continuous probability distribution with +/// parameters `scale` (α) and `shape` (xm or k). +/// +/// # Plot +/// +/// The following plot shows the Pareto distribution with various parameters. +/// +/// ![Pareto distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pareto.svg) /// /// # Example /// ``` diff --git a/rand_distr/src/pert.rs b/rand_distr/src/pert.rs index 9ed79bf28f..94e6d2295f 100644 --- a/rand_distr/src/pert.rs +++ b/rand_distr/src/pert.rs @@ -19,6 +19,12 @@ use core::fmt; /// [`Triangular`] distribution, the probability density function of the PERT /// distribution is smooth, with a configurable weighting around the mode. /// +/// # Plot +/// +/// The following plot shows the PERT distribution with various parameters. +/// +/// ![PERT distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pert.svg) +/// /// # Example /// /// ```rust diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index 50d7429835..2711dc6681 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -19,6 +19,12 @@ use core::fmt; /// This distribution has a density function: /// `f(k) = lambda^k * exp(-lambda) / k!` for `k >= 0`. /// +/// # Plot +/// +/// The following plot shows the Poisson distribution with various values of `lambda`. +/// +/// ![Poisson distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/poisson.svg) +/// /// # Example /// /// ``` diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 3577147f86..d9a872c4db 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -22,6 +22,12 @@ use rand::Rng; /// `f(x) = 2 / scale * phi((x - location) / scale) * Phi(alpha * (x - location) / scale)` /// where `phi` and `Phi` are the density and distribution of a standard normal variable. /// +/// # Plot +/// +/// The following plot shows the skew normal distribution with various values of `alpha`. +/// +/// ![Skew normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/skew_normal.svg) +/// /// # Example /// /// ``` diff --git a/rand_distr/src/triangular.rs b/rand_distr/src/triangular.rs index eef7d19013..4321cb8e89 100644 --- a/rand_distr/src/triangular.rs +++ b/rand_distr/src/triangular.rs @@ -20,6 +20,12 @@ use core::fmt; /// The probability density function is triangular. For a similar distribution /// with a smooth PDF, see the [`Pert`] distribution. /// +/// # Plot +/// +/// The following plot shows the triangular distribution with various parameters. +/// +/// ![Triangular distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/triangular.svg) +/// /// # Example /// /// ```rust diff --git a/rand_distr/src/unit_ball.rs b/rand_distr/src/unit_ball.rs index 4d29612597..0529d1d047 100644 --- a/rand_distr/src/unit_ball.rs +++ b/rand_distr/src/unit_ball.rs @@ -15,6 +15,11 @@ use rand::Rng; /// /// Implemented via rejection sampling. /// +/// # Plot +/// +/// The following plot shows the unit ball in three dimensions. +/// +/// ![Unit ball](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_ball.svg) /// /// # Example /// diff --git a/rand_distr/src/unit_circle.rs b/rand_distr/src/unit_circle.rs index f3dbe757aa..f810e3cebf 100644 --- a/rand_distr/src/unit_circle.rs +++ b/rand_distr/src/unit_circle.rs @@ -14,6 +14,11 @@ use rand::Rng; /// /// Implemented via a method by von Neumann[^1]. /// +/// # Plot +/// +/// The following plot shows the unit circle. +/// +/// ![Unit circle](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_circle.svg) /// /// # Example /// diff --git a/rand_distr/src/unit_disc.rs b/rand_distr/src/unit_disc.rs index 5004217d5b..ea145da44f 100644 --- a/rand_distr/src/unit_disc.rs +++ b/rand_distr/src/unit_disc.rs @@ -14,6 +14,11 @@ use rand::Rng; /// /// Implemented via rejection sampling. /// +/// # Plot +/// +/// The following plot shows the unit disc. +/// +/// ![Unit disc](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_disc.svg) /// /// # Example /// diff --git a/rand_distr/src/unit_sphere.rs b/rand_distr/src/unit_sphere.rs index 632275e332..1207c75cae 100644 --- a/rand_distr/src/unit_sphere.rs +++ b/rand_distr/src/unit_sphere.rs @@ -14,6 +14,13 @@ use rand::Rng; /// /// Implemented via a method by Marsaglia[^1]. /// +/// # Plot +/// +/// The following plot shows the unit sphere as a wireframe. +/// The wireframe should only illustrate that this distribution samples +/// from the surface of the sphere only, not the interior. +/// +/// ![Unit sphere](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_sphere.svg) /// /// # Example /// diff --git a/rand_distr/src/weibull.rs b/rand_distr/src/weibull.rs index 2ab74edde2..d0fa7e115b 100644 --- a/rand_distr/src/weibull.rs +++ b/rand_distr/src/weibull.rs @@ -13,7 +13,14 @@ use crate::{Distribution, OpenClosed01}; use rand::Rng; use core::fmt; -/// Samples floating-point numbers according to the Weibull distribution +/// Samples floating-point numbers according to the Weibull distribution. +/// The Weibull distribution has two parameters, `scale` (`λ`) and `shape` (`k`). +/// +/// # Plot +/// +/// The following plot shows the Weibull distribution with various values of `λ` and `k`. +/// +/// ![Weibull distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/weibull.svg) /// /// # Example /// ``` diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index d0813ef906..a878c9e4b7 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -13,15 +13,21 @@ use crate::{Distribution, Standard}; use rand::{Rng, distributions::OpenClosed01}; use core::fmt; -/// Samples integers according to the [zeta distribution]. +/// The Zeta distribution `Zeta(a)`. /// -/// The zeta distribution is a limit of the [`Zipf`] distribution. Sometimes it -/// is called one of the following: discrete Pareto, Riemann-Zeta, Zipf, or -/// Zipf–Estoup distribution. +/// The Zeta distribution is a discrete probability distribution with parameter +/// `a`. It is a special case of the [`Zipf`] distribution with `n = ∞`. +/// It is also known as the discrete Pareto, Riemann-Zeta, Zipf, or Zipf–Estoup distribution. /// /// It has the density function `f(k) = k^(-a) / C(a)` for `k >= 1`, where `a` /// is the parameter and `C(a)` is the Riemann zeta function. /// +/// # Plot +/// +/// The following plot illustrates the zeta distribution for various values of `a`. +/// +/// ![Zeta distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/zeta.svg) +/// /// # Example /// ``` /// use rand::prelude::*; @@ -126,6 +132,12 @@ where F: Float, Standard: Distribution, OpenClosed01: Distribution /// For large `n`, this converges to the [`Zeta`] distribution. /// /// For `s = 0`, this becomes a uniform distribution. +/// +/// # Plot +/// +/// The following plot illustrates the Zipf distribution for various values of `s` and `n = 10`. +/// +/// ![Zipf distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/zipf.svg) /// /// # Example /// ``` From 92010f2bdbee9a4eb47d0927daf76fbc1e4b1824 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Sun, 16 Jun 2024 15:50:12 +0200 Subject: [PATCH 13/29] Update documentation --- rand_distr/src/cauchy.rs | 8 ++++---- rand_distr/src/dirichlet.rs | 2 +- rand_distr/src/exponential.rs | 21 +++++++++++---------- rand_distr/src/frechet.rs | 5 ++--- rand_distr/src/gamma.rs | 14 ++++++++------ rand_distr/src/geometric.rs | 3 ++- rand_distr/src/gumbel.rs | 2 +- rand_distr/src/inverse_gaussian.rs | 6 +++--- rand_distr/src/normal.rs | 14 +++++++++++--- rand_distr/src/normal_inverse_gaussian.rs | 10 +++++----- rand_distr/src/pareto.rs | 9 +++++++-- rand_distr/src/pert.rs | 6 ++++-- rand_distr/src/poisson.rs | 9 +++++++-- rand_distr/src/skew_normal.rs | 10 ++++++++-- rand_distr/src/triangular.rs | 5 +++-- rand_distr/src/unit_ball.rs | 10 ++++++++-- rand_distr/src/unit_circle.rs | 7 ++++++- rand_distr/src/unit_disc.rs | 6 ++++++ rand_distr/src/unit_sphere.rs | 9 +++++++-- rand_distr/src/zipf.rs | 3 ++- 20 files changed, 106 insertions(+), 53 deletions(-) diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 9183aa4d2a..f0052c4b3a 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -17,7 +17,7 @@ use rand::Rng; /// The Cauchy distribution `Cauchy(median, scale)`. /// /// The Cauchy distribution is a continuous probability distribution with -/// parameters `median` and `scale`. +/// parameters `median` (`x₀`) and `scale` (`γ`). /// /// This distribution has a density function: /// `f(x) = 1 / (pi * scale * (1 + ((x - median) / scale)^2))` @@ -27,9 +27,9 @@ use rand::Rng; /// /// # Plot /// -/// The plot illustrates the Cauchy distribution with various parameters. -/// Note how the `median` parameter `x₀` shifts the distribution along the x-axis, -/// and the `scale` parameter `γ` changes the density around the median. +/// The plot illustrates the Cauchy distribution with various values of `x₀` and `γ`. +/// Note how the median parameter `x₀` shifts the distribution along the x-axis, +/// and how the scale `γ` changes the density around the median. /// /// The standard Cauchy distribution is the special case with `median = 0` and `scale = 1`. /// diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index ae450474ad..d43c60ab6d 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -193,7 +193,7 @@ where /// /// # Plot /// -/// The following plot illustrates the Dirichlet distribution with various parameters. +/// The following plot illustrates the Dirichlet distribution with various `alpha`s. /// /// ![Dirichlet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/dirichlet.png) /// diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 12d1918e7a..f9fba215af 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -19,7 +19,11 @@ use rand::Rng; /// with rate parameter `λ = 1`. This is equivalent to `Exp::new(1.0)` or /// sampling with `-rng.gen::().ln()`, but faster. /// -/// See `Exp` for the general exponential distribution. +/// See [`Exp`](crate::Exp) for the general exponential distribution. +/// +/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact +/// description in the paper was adjusted to use tables for the exponential +/// distribution rather than normal. /// /// # Plot /// @@ -27,10 +31,6 @@ use rand::Rng; /// /// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential_exp1.svg) /// -/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact -/// description in the paper was adjusted to use tables for the exponential -/// distribution rather than normal. -/// /// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to /// Generate Normal Random Samples*]( /// https://www.doornik.com/research/ziggurat.pdf). @@ -83,16 +83,17 @@ impl Distribution for Exp1 { /// The exponential distribution `Exp(lambda)`. /// -/// This distribution has density function: `f(x) = lambda * exp(-lambda * x)` -/// for `x > 0`, when `lambda > 0`. For `lambda = 0`, all samples yield infinity. +/// This distribution has density function: `f(x) = λ * exp(-λ * x)` +/// for `x > 0`, when `λ > 0`. For `λ = 0`, all samples yield infinity. /// -/// Note that [`Exp1`](crate::Exp1) is an optimised implementation for `lambda = 1`. +/// Note that [`Exp1`](crate::Exp1) is an optimised implementation for `λ = 1`. /// /// # Plot /// /// The following plot illustrates the exponential distribution with -/// various values of `lambda`. -/// The `lambda` parameter controls the rate of decay as `x` approaches infinity. +/// various values of `λ`. +/// The `λ` parameter controls the rate of decay as `x` approaches infinity, +/// and the mean of the distribution is `1/λ`. /// /// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential.svg) /// diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 4cf412e3e7..9a63a878ee 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -22,11 +22,10 @@ use rand::Rng; /// /// # Plot /// -/// The plot shows the Fréchet distribution with various parameters. +/// The plot shows the Fréchet distribution with various values of `μ`, `σ`, and `α`. /// Note how the location parameter `μ` shifts the distribution along the x-axis, /// the scale parameter `σ` stretches or compresses the distribution along the x-axis, -/// and the shape parameter `α` changes the severity of the increase in density -/// towards the lower bound. +/// and the shape parameter `α` changes the tail behavior. /// /// ![Fréchet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/frechet.svg) /// diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index be7218508f..1cf60a410f 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -35,18 +35,20 @@ use serde::{Deserialize, Serialize}; /// where `Γ` is the Gamma function, `k` is the shape and `θ` is the /// scale and both `k` and `θ` are strictly positive. /// +/// The algorithm used is that described by Marsaglia & Tsang 2000[^1], +/// falling back to directly sampling from an Exponential for `shape +/// == 1`, and using the boosting technique described in that paper for +/// `shape < 1`. +/// /// # Plot /// /// The following plot illustrates the Gamma distribution with -/// various parameters. +/// various values of `k` and `θ`. +/// Curves with `θ = 1` are more saturated, while corresponding +/// curves with `θ = 2` have a lighter color. /// /// ![Gamma distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/gamma.svg) /// -/// The algorithm used is that described by Marsaglia & Tsang 2000[^1], -/// falling back to directly sampling from an Exponential for `shape -/// == 1`, and using the boosting technique described in that paper for -/// `shape < 1`. -/// /// # Example /// /// ``` diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index f253ac7367..df57cd6ca8 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -21,7 +21,8 @@ use rand::Rng; /// # Plot /// /// The following plot illustrates the geometric distribution for various values of `p`. -/// Note how the higher `p` is, the more likely it is to have a success early on. +/// Note how higher `p` values shift the distribution to the left, and the mean +/// of the distribution is `1/p`. /// /// ![Geometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/geometric.svg) /// diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index 1b253fad5c..91d714422a 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -23,7 +23,7 @@ use rand::Rng; /// /// # Plot /// -/// The following plot illustrates the Gumbel distribution with various parameters. +/// The following plot illustrates the Gumbel distribution with various values of `μ` and `σ`. /// Note how the location parameter `μ` shifts the distribution along the x-axis, /// and the scale parameter `σ` changes the density around `μ`. /// Note also the asymptotic behavior of the distribution towards the right. diff --git a/rand_distr/src/inverse_gaussian.rs b/rand_distr/src/inverse_gaussian.rs index d2ea4ed00e..c22aab61cb 100644 --- a/rand_distr/src/inverse_gaussian.rs +++ b/rand_distr/src/inverse_gaussian.rs @@ -24,15 +24,15 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error {} -/// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) +/// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) `IG(μ, λ)` /// -/// This is a continuous probability distribution with two parameters, `mean` and `shape`, +/// This is a continuous probability distribution with two parameters, `mean` (`μ`) and `shape` (`λ`), /// defined for `x > 0`. /// It is also known as the Wald distribution. /// /// # Plot /// -/// The following plot shows the inverse Gaussian distribution with various parameters. +/// The following plot shows the inverse Gaussian distribution with various values of `μ` and `λ`. /// /// ![Inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/inverse_gaussian.svg) /// diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index d976baac91..9aabebb562 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -27,7 +27,7 @@ use rand::Rng; /// /// The following diagram shows the standard normal distribution. /// -/// ![Standard normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal.svg) +/// ![Standard normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/standard_normal.svg) /// /// # Example /// ``` @@ -108,8 +108,9 @@ impl Distribution for StandardNormal { /// /// # Plot /// -/// The following diagram shows the normal distribution with various parameters. -/// [`StandardNormal`] is illustrated with `μ = 0` and `σ = 1`. +/// The following diagram shows the normal distribution with various values of `μ` +/// and `σ`. +/// The blue curve is the [`StandardNormal`] distribution, `N(0, 1)`. /// /// ![Normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal.svg) /// @@ -231,6 +232,13 @@ where /// /// If `X` is log-normal distributed, then `ln(X)` is `N(mean, std_dev**2)` /// distributed. +/// +/// # Plot +/// +/// The following diagram shows the log-normal distribution with various values +/// of `μ` and `σ`. +/// +/// ![Log-normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/log_normal.svg) /// /// # Example /// diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 0cd6ad396c..5e7cf777da 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -28,15 +28,15 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error {} -/// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) -/// +/// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)` +/// /// This is a continuous probability distribution with two parameters, `alpha` and `beta`, -/// defined for `(-∞, ∞)`. -/// It is also known as the normal-Wald distribution. +/// defined in `(-∞, ∞)`. +/// It is also known as the `normal-Wald` distribution. /// /// # Plot /// -/// The following plot shows the normal-inverse Gaussian distribution with various parameters. +/// The following plot shows the normal-inverse Gaussian distribution with various values of `α` and `β`. /// /// ![Normal-inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal_inverse_gaussian.svg) /// diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index d1a98e5a6b..4cf30d41cc 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -13,12 +13,17 @@ use core::fmt; use num_traits::Float; use rand::Rng; +/// The Pareto distribution `Pareto(scale, shape)`. +/// /// The Pareto distribution is a continuous probability distribution with -/// parameters `scale` (α) and `shape` (xm or k). +/// parameters `scale` (`α`) and `shape` (`x``m` or `k`). /// /// # Plot /// -/// The following plot shows the Pareto distribution with various parameters. +/// The following plot shows the Pareto distribution with various values of +/// `scale` and `shape`. +/// Note how the scale parameter `α` corresponds to the height of the jump +/// in density at `x = x``m`, and to the rate of decay in the tail. /// /// ![Pareto distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pareto.svg) /// diff --git a/rand_distr/src/pert.rs b/rand_distr/src/pert.rs index 023f26bba2..d99d60d52d 100644 --- a/rand_distr/src/pert.rs +++ b/rand_distr/src/pert.rs @@ -12,16 +12,18 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The PERT distribution. +/// The PERT distribution `PERT(min, max, mode, shape)`. /// /// Similar to the [`Triangular`] distribution, the PERT distribution is /// parameterised by a range and a mode within that range. Unlike the /// [`Triangular`] distribution, the probability density function of the PERT /// distribution is smooth, with a configurable weighting around the mode. +/// If left unspecified, the default value of `shape` is `4.0`. /// /// # Plot /// -/// The following plot shows the PERT distribution with various parameters. +/// The following plot shows the PERT distribution with various values of +/// `min`, `max`, `mode`, and `shape`. /// /// ![PERT distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pert.svg) /// diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index 0b57591157..f8d4ebe538 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -15,13 +15,18 @@ use num_traits::{Float, FloatConst}; use rand::Rng; /// The Poisson distribution `Poisson(lambda)`. +/// +/// The Poisson distribution is a discrete probability distribution with +/// rate parameter `λ`. It models the number of events occurring in a fixed +/// interval of time or space. /// /// This distribution has a density function: -/// `f(k) = lambda^k * exp(-lambda) / k!` for `k >= 0`. +/// `f(k) = λ^k * exp(-λ) / k!` for `k >= 0`. /// /// # Plot /// -/// The following plot shows the Poisson distribution with various values of `lambda`. +/// The following plot shows the Poisson distribution with various values of `λ`. +/// Note how a higher `λ` results in more expected events per unit interval. /// /// ![Poisson distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/poisson.svg) /// diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 17c8ef6edf..076f531bb8 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -16,7 +16,11 @@ use rand::Rng; /// The [skew normal distribution] `SN(location, scale, shape)`. /// /// The skew normal distribution is a generalization of the -/// [`Normal`] distribution to allow for non-zero skewness. +/// [`Normal`](crate::Normal) distribution to allow for non-zero skewness. +/// +/// The `location` and `scale` parameters correspond to the +/// mean and standard deviation of the normal distribution, +/// respectively. The `shape` parameter controls the skewness. /// /// It has the density function, for `scale > 0`, /// `f(x) = 2 / scale * phi((x - location) / scale) * Phi(alpha * (x - location) / scale)` @@ -24,7 +28,9 @@ use rand::Rng; /// /// # Plot /// -/// The following plot shows the skew normal distribution with various values of `alpha`. +/// The following plot shows the skew normal distribution with `location = 0`, `scale = 1` +/// (corresponding to the [`standard normal distribution`](crate::StandardNormal)), and +/// various values of `shape`. /// /// ![Skew normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/skew_normal.svg) /// diff --git a/rand_distr/src/triangular.rs b/rand_distr/src/triangular.rs index 0ea9136e09..cbd7093dc6 100644 --- a/rand_distr/src/triangular.rs +++ b/rand_distr/src/triangular.rs @@ -12,7 +12,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The triangular distribution. +/// The triangular distribution `Triangular(min, max, mode)`. /// /// A continuous probability distribution parameterised by a range, and a mode /// (most likely value) within that range. @@ -22,7 +22,8 @@ use rand::Rng; /// /// # Plot /// -/// The following plot shows the triangular distribution with various parameters. +/// The following plot shows the triangular distribution with various values of +/// `min`, `max`, and `mode`. /// /// ![Triangular distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/triangular.svg) /// diff --git a/rand_distr/src/unit_ball.rs b/rand_distr/src/unit_ball.rs index 24f82f21a9..bff6d6196d 100644 --- a/rand_distr/src/unit_ball.rs +++ b/rand_distr/src/unit_ball.rs @@ -10,14 +10,20 @@ use crate::{uniform::SampleUniform, Distribution, Uniform}; use num_traits::Float; use rand::Rng; -/// Samples uniformly from the unit ball (surface and interior) in three -/// dimensions. +/// Samples uniformly from the volume of the unit ball in three dimensions. /// /// Implemented via rejection sampling. +/// +/// For a distribution that samples only from the surface of the unit ball, +/// see [`UnitSphere`](crate::UnitSphere). +/// +/// For a similar distribution in two dimensions, see [`UnitDisc`](crate::UnitDisc). /// /// # Plot /// /// The following plot shows the unit ball in three dimensions. +/// This distribution samples individual points from the entire volume +/// of the ball. /// /// ![Unit ball](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_ball.svg) /// diff --git a/rand_distr/src/unit_circle.rs b/rand_distr/src/unit_circle.rs index 1b85ba0d59..3a31304824 100644 --- a/rand_distr/src/unit_circle.rs +++ b/rand_distr/src/unit_circle.rs @@ -10,9 +10,14 @@ use crate::{uniform::SampleUniform, Distribution, Uniform}; use num_traits::Float; use rand::Rng; -/// Samples uniformly from the edge of the unit circle in two dimensions. +/// Samples uniformly from the circumference of the unit circle in two dimensions. /// /// Implemented via a method by von Neumann[^1]. +/// +/// For a distribution that also samples from the interior of the unit circle, +/// see [`UnitDisc`](crate::UnitDisc). +/// +/// For a similar distribution in three dimensions, see [`UnitSphere`](crate::UnitSphere). /// /// # Plot /// diff --git a/rand_distr/src/unit_disc.rs b/rand_distr/src/unit_disc.rs index 5cd90720a8..ea912785ee 100644 --- a/rand_distr/src/unit_disc.rs +++ b/rand_distr/src/unit_disc.rs @@ -13,10 +13,16 @@ use rand::Rng; /// Samples uniformly from the unit disc in two dimensions. /// /// Implemented via rejection sampling. +/// +/// For a distribution that samples only from the circumference of the unit disc, +/// see [`UnitCircle`](crate::UnitCircle). +/// +/// For a similar distribution in three dimensions, see [`UnitBall`](crate::UnitBall). /// /// # Plot /// /// The following plot shows the unit disc. +/// This distribution samples individual points from the entire area of the disc. /// /// ![Unit disc](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_disc.svg) /// diff --git a/rand_distr/src/unit_sphere.rs b/rand_distr/src/unit_sphere.rs index acb3742d56..8131ba21c2 100644 --- a/rand_distr/src/unit_sphere.rs +++ b/rand_distr/src/unit_sphere.rs @@ -13,12 +13,17 @@ use rand::Rng; /// Samples uniformly from the surface of the unit sphere in three dimensions. /// /// Implemented via a method by Marsaglia[^1]. +/// +/// For a distribution that also samples from the interior of the sphere, +/// see [`UnitBall`](crate::UnitBall). +/// +/// For a similar distribution in two dimensions, see [`UnitCircle`](crate::UnitCircle). /// /// # Plot /// /// The following plot shows the unit sphere as a wireframe. -/// The wireframe should only illustrate that this distribution samples -/// from the surface of the sphere only, not the interior. +/// The wireframe is meant to illustrate that this distribution samples +/// from the surface of the sphere only, not from the interior. /// /// ![Unit sphere](https://raw.githubusercontent.com/rust-random/charts/main/charts/unit_sphere.svg) /// diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index 946a3774de..f15b506791 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -143,7 +143,8 @@ where /// /// # Plot /// -/// The following plot illustrates the Zipf distribution for various values of `s` and `n = 10`. +/// The following plot illustrates the Zipf distribution for `n = 10` and +/// various values of `s`. /// /// ![Zipf distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/zipf.svg) /// From 5bb463590081e9bc12efe5de191970786083e0c9 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Sun, 16 Jun 2024 16:03:29 +0200 Subject: [PATCH 14/29] Rustfmt --- rand_distr/src/binomial.rs | 10 +++++----- rand_distr/src/cauchy.rs | 4 ++-- rand_distr/src/dirichlet.rs | 6 +++--- rand_distr/src/exponential.rs | 2 +- rand_distr/src/frechet.rs | 2 +- rand_distr/src/gamma.rs | 20 ++++++++++---------- rand_distr/src/gumbel.rs | 2 +- rand_distr/src/inverse_gaussian.rs | 10 +++++----- rand_distr/src/normal.rs | 6 +++--- rand_distr/src/normal_inverse_gaussian.rs | 12 ++++++------ rand_distr/src/pareto.rs | 4 ++-- rand_distr/src/poisson.rs | 2 +- rand_distr/src/skew_normal.rs | 6 +++--- rand_distr/src/unit_ball.rs | 4 ++-- rand_distr/src/unit_circle.rs | 4 ++-- rand_distr/src/unit_disc.rs | 4 ++-- rand_distr/src/unit_sphere.rs | 4 ++-- rand_distr/src/zipf.rs | 8 ++++---- 18 files changed, 55 insertions(+), 55 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index c8a57b1022..16d16db0f2 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -17,11 +17,11 @@ use num_traits::Float; use rand::Rng; /// The binomial distribution `Binomial(n, p)`. -/// +/// /// The binomial distribution is a discrete probability distribution with /// parameters `n` (number of trials) and `p` (probability of success). -/// Given some number of successes `k`, `Binomial(n, p)` describes the -/// probability of having `k` successes in `n` independent trials, +/// Given some number of successes `k`, `Binomial(n, p)` describes the +/// probability of having `k` successes in `n` independent trials, /// each of which has probability `p` to succeed. /// /// This distribution follows the density function: @@ -29,8 +29,8 @@ use rand::Rng; /// /// # Plot /// -/// The following plot of the binomial distribution illustrates the -/// probability of `k` successes out of `n = 10` trials with `p = 0.2` +/// The following plot of the binomial distribution illustrates the +/// probability of `k` successes out of `n = 10` trials with `p = 0.2` /// and `p = 0.6` for `0 <= k <= n`. /// /// ![Binomial distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/binomial.svg) diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index f0052c4b3a..9aa22ac75b 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -28,9 +28,9 @@ use rand::Rng; /// # Plot /// /// The plot illustrates the Cauchy distribution with various values of `x₀` and `γ`. -/// Note how the median parameter `x₀` shifts the distribution along the x-axis, +/// Note how the median parameter `x₀` shifts the distribution along the x-axis, /// and how the scale `γ` changes the density around the median. -/// +/// /// The standard Cauchy distribution is the special case with `median = 0` and `scale = 1`. /// /// ![Cauchy distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/cauchy.svg) diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index d43c60ab6d..8d50ab74a9 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -190,11 +190,11 @@ where /// The Dirichlet distribution is a family of continuous multivariate /// probability distributions parameterized by a vector alpha of positive reals. /// It is a multivariate generalization of the beta distribution. -/// +/// /// # Plot -/// +/// /// The following plot illustrates the Dirichlet distribution with various `alpha`s. -/// +/// /// ![Dirichlet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/dirichlet.png) /// /// # Example diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index f9fba215af..6604653efc 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -90,7 +90,7 @@ impl Distribution for Exp1 { /// /// # Plot /// -/// The following plot illustrates the exponential distribution with +/// The following plot illustrates the exponential distribution with /// various values of `λ`. /// The `λ` parameter controls the rate of decay as `x` approaches infinity, /// and the mean of the distribution is `1/λ`. diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 9a63a878ee..5c3ee08696 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -17,7 +17,7 @@ use rand::Rng; /// /// This distribution has density function: /// `f(x) = [(x - μ) / σ]^(-1 - α) exp[-(x - μ) / σ]^(-α) α / σ`, -/// where `μ` is the location parameter, `σ` the scale parameter, +/// where `μ` is the location parameter, `σ` the scale parameter, /// and `α` the shape parameter. /// /// # Plot diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 1cf60a410f..03562ea42a 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -44,7 +44,7 @@ use serde::{Deserialize, Serialize}; /// /// The following plot illustrates the Gamma distribution with /// various values of `k` and `θ`. -/// Curves with `θ = 1` are more saturated, while corresponding +/// Curves with `θ = 1` are more saturated, while corresponding /// curves with `θ = 2` have a lighter color. /// /// ![Gamma distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/gamma.svg) @@ -487,14 +487,14 @@ where /// The Student t-distribution, `t(nu)`, where `nu` is the degrees of /// freedom. -/// +/// /// This is a continuous probability distribution that arises when /// estimating the mean of a normally-distributed population in /// situations where the sample size is small and the population's /// standard deviation is unknown. -/// +/// /// For `nu = 1`, this is equivalent to the standard [`Cauchy`](crate::Cauchy) distribution, -/// and as `nu` diverges to infinity, `t(nu)` converges to +/// and as `nu` diverges to infinity, `t(nu)` converges to /// [`StandardNormal`](crate::StandardNormal). /// /// # Plot @@ -589,19 +589,19 @@ struct BC { } /// The Beta distribution `Beta(alpha, beta)`. -/// +/// /// The Beta distribution is a continuous probability distribution /// defined on the interval `[0, 1]`. It is the conjugate prior for the /// parameter `p` of the [`Binomial`][crate::Binomial] distribution. -/// +/// /// It has two shape parameters `α` and `β` which control the shape of /// the distribution. The distribution is symmetric when `α = β`. -/// +/// /// # Plot -/// -/// The plot shows the Beta distribution with various combinations +/// +/// The plot shows the Beta distribution with various combinations /// of `α` and `β`. -/// +/// /// ![Beta distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/beta.svg) /// /// # Example diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index 91d714422a..e59761aa15 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -14,7 +14,7 @@ use num_traits::Float; use rand::Rng; /// The Gumbel distribution `Gumbel(location, scale)`. -/// +/// /// The Gumbel distribution is a continuous probability distribution with /// location parameter `μ` and scale parameter `σ`. /// diff --git a/rand_distr/src/inverse_gaussian.rs b/rand_distr/src/inverse_gaussian.rs index c22aab61cb..5dc0d32a1a 100644 --- a/rand_distr/src/inverse_gaussian.rs +++ b/rand_distr/src/inverse_gaussian.rs @@ -25,17 +25,17 @@ impl fmt::Display for Error { impl std::error::Error for Error {} /// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) `IG(μ, λ)` -/// +/// /// This is a continuous probability distribution with two parameters, `mean` (`μ`) and `shape` (`λ`), /// defined for `x > 0`. /// It is also known as the Wald distribution. -/// +/// /// # Plot -/// +/// /// The following plot shows the inverse Gaussian distribution with various values of `μ` and `λ`. -/// +/// /// ![Inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/inverse_gaussian.svg) -/// +/// /// # Example /// ``` /// use rand_distr::{InverseGaussian, Distribution}; diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 9aabebb562..1a0488c862 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -232,12 +232,12 @@ where /// /// If `X` is log-normal distributed, then `ln(X)` is `N(mean, std_dev**2)` /// distributed. -/// +/// /// # Plot -/// +/// /// The following diagram shows the log-normal distribution with various values /// of `μ` and `σ`. -/// +/// /// ![Log-normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/log_normal.svg) /// /// # Example diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 5e7cf777da..463c3a2a9c 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -29,21 +29,21 @@ impl fmt::Display for Error { impl std::error::Error for Error {} /// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)` -/// +/// /// This is a continuous probability distribution with two parameters, `alpha` and `beta`, /// defined in `(-∞, ∞)`. /// It is also known as the `normal-Wald` distribution. -/// +/// /// # Plot -/// +/// /// The following plot shows the normal-inverse Gaussian distribution with various values of `α` and `β`. -/// +/// /// ![Normal-inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal_inverse_gaussian.svg) -/// +/// /// # Example /// ``` /// use rand_distr::{NormalInverseGaussian, Distribution}; -/// +/// /// let norm_inv_gauss = NormalInverseGaussian::new(2.0, 1.0).unwrap(); /// let v = norm_inv_gauss.sample(&mut rand::thread_rng()); /// println!("{} is from a normal-inverse Gaussian(2, 1) distribution", v); diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index 4cf30d41cc..4865819d12 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -14,13 +14,13 @@ use num_traits::Float; use rand::Rng; /// The Pareto distribution `Pareto(scale, shape)`. -/// +/// /// The Pareto distribution is a continuous probability distribution with /// parameters `scale` (`α`) and `shape` (`x``m` or `k`). /// /// # Plot /// -/// The following plot shows the Pareto distribution with various values of +/// The following plot shows the Pareto distribution with various values of /// `scale` and `shape`. /// Note how the scale parameter `α` corresponds to the height of the jump /// in density at `x = x``m`, and to the rate of decay in the tail. diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index f8d4ebe538..b08bee49fd 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -15,7 +15,7 @@ use num_traits::{Float, FloatConst}; use rand::Rng; /// The Poisson distribution `Poisson(lambda)`. -/// +/// /// The Poisson distribution is a discrete probability distribution with /// rate parameter `λ`. It models the number of events occurring in a fixed /// interval of time or space. diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 076f531bb8..067adb15ba 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -17,8 +17,8 @@ use rand::Rng; /// /// The skew normal distribution is a generalization of the /// [`Normal`](crate::Normal) distribution to allow for non-zero skewness. -/// -/// The `location` and `scale` parameters correspond to the +/// +/// The `location` and `scale` parameters correspond to the /// mean and standard deviation of the normal distribution, /// respectively. The `shape` parameter controls the skewness. /// @@ -29,7 +29,7 @@ use rand::Rng; /// # Plot /// /// The following plot shows the skew normal distribution with `location = 0`, `scale = 1` -/// (corresponding to the [`standard normal distribution`](crate::StandardNormal)), and +/// (corresponding to the [`standard normal distribution`](crate::StandardNormal)), and /// various values of `shape`. /// /// ![Skew normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/skew_normal.svg) diff --git a/rand_distr/src/unit_ball.rs b/rand_distr/src/unit_ball.rs index bff6d6196d..1cc7119b7f 100644 --- a/rand_distr/src/unit_ball.rs +++ b/rand_distr/src/unit_ball.rs @@ -13,10 +13,10 @@ use rand::Rng; /// Samples uniformly from the volume of the unit ball in three dimensions. /// /// Implemented via rejection sampling. -/// +/// /// For a distribution that samples only from the surface of the unit ball, /// see [`UnitSphere`](crate::UnitSphere). -/// +/// /// For a similar distribution in two dimensions, see [`UnitDisc`](crate::UnitDisc). /// /// # Plot diff --git a/rand_distr/src/unit_circle.rs b/rand_distr/src/unit_circle.rs index 3a31304824..a23cec2522 100644 --- a/rand_distr/src/unit_circle.rs +++ b/rand_distr/src/unit_circle.rs @@ -13,10 +13,10 @@ use rand::Rng; /// Samples uniformly from the circumference of the unit circle in two dimensions. /// /// Implemented via a method by von Neumann[^1]. -/// +/// /// For a distribution that also samples from the interior of the unit circle, /// see [`UnitDisc`](crate::UnitDisc). -/// +/// /// For a similar distribution in three dimensions, see [`UnitSphere`](crate::UnitSphere). /// /// # Plot diff --git a/rand_distr/src/unit_disc.rs b/rand_distr/src/unit_disc.rs index ea912785ee..4ba5256265 100644 --- a/rand_distr/src/unit_disc.rs +++ b/rand_distr/src/unit_disc.rs @@ -13,10 +13,10 @@ use rand::Rng; /// Samples uniformly from the unit disc in two dimensions. /// /// Implemented via rejection sampling. -/// +/// /// For a distribution that samples only from the circumference of the unit disc, /// see [`UnitCircle`](crate::UnitCircle). -/// +/// /// For a similar distribution in three dimensions, see [`UnitBall`](crate::UnitBall). /// /// # Plot diff --git a/rand_distr/src/unit_sphere.rs b/rand_distr/src/unit_sphere.rs index 8131ba21c2..61f48e0c06 100644 --- a/rand_distr/src/unit_sphere.rs +++ b/rand_distr/src/unit_sphere.rs @@ -13,10 +13,10 @@ use rand::Rng; /// Samples uniformly from the surface of the unit sphere in three dimensions. /// /// Implemented via a method by Marsaglia[^1]. -/// +/// /// For a distribution that also samples from the interior of the sphere, /// see [`UnitBall`](crate::UnitBall). -/// +/// /// For a similar distribution in two dimensions, see [`UnitCircle`](crate::UnitCircle). /// /// # Plot diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index f15b506791..d80c642fb3 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -25,7 +25,7 @@ use rand::{distributions::OpenClosed01, Rng}; /// # Plot /// /// The following plot illustrates the zeta distribution for various values of `a`. -/// +/// /// ![Zeta distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/zeta.svg) /// /// # Example @@ -140,10 +140,10 @@ where /// For large `n`, this converges to the [`Zeta`] distribution. /// /// For `s = 0`, this becomes a uniform distribution. -/// +/// /// # Plot -/// -/// The following plot illustrates the Zipf distribution for `n = 10` and +/// +/// The following plot illustrates the Zipf distribution for `n = 10` and /// various values of `s`. /// /// ![Zipf distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/zipf.svg) From 0ff93c916c36ae01177b7c7d88fc410dc4f62a9b Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Sun, 16 Jun 2024 16:13:49 +0200 Subject: [PATCH 15/29] Update CHANGELOG.md --- rand_distr/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rand_distr/CHANGELOG.md b/rand_distr/CHANGELOG.md index e29c59910d..cab7591505 100644 --- a/rand_distr/CHANGELOG.md +++ b/rand_distr/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added +- Add plots for `rand_distr` distributions to documentation (#1434) + ## [0.5.0-alpha.1] - 2024-03-18 - Target `rand` version `0.9.0-alpha.1` From 6d3f24109354eedc6c62156ba7345db707574441 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 18 Jun 2024 13:20:18 +0200 Subject: [PATCH 16/29] Implement feedback --- rand_distr/src/binomial.rs | 17 ++++++++--- rand_distr/src/cauchy.rs | 37 +++++++++++++++++------- rand_distr/src/dirichlet.rs | 17 ++++++++--- rand_distr/src/exponential.rs | 49 +++++++++++++++++++++++--------- rand_distr/src/frechet.rs | 24 ++++++++++++---- rand_distr/src/gamma.rs | 49 ++++++++++++++++++-------------- rand_distr/src/hypergeometric.rs | 2 +- rand_distr/src/pert.rs | 1 - rand_distr/src/poisson.rs | 4 +-- src/distributions/bernoulli.rs | 21 ++++++++++++-- 10 files changed, 154 insertions(+), 67 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 16d16db0f2..48735b3308 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -7,7 +7,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The binomial distribution. +//! The binomial distribution `Binomial(n, p)`. use crate::{Distribution, Uniform}; use core::cmp::Ordering; @@ -17,14 +17,23 @@ use num_traits::Float; use rand::Rng; /// The binomial distribution `Binomial(n, p)`. +/// +/// # Parameters +/// +/// `n`: Number of trials. +/// +/// `p`: Probability of success. +/// +/// # Description /// /// The binomial distribution is a discrete probability distribution with /// parameters `n` (number of trials) and `p` (probability of success). /// Given some number of successes `k`, `Binomial(n, p)` describes the -/// probability of having `k` successes in `n` independent trials, -/// each of which has probability `p` to succeed. +/// probability of seeing `k` successes in `n` independent trials, +/// each of which has success probability `p`. /// -/// This distribution follows the density function: +/// # Density function +/// /// `f(k) = n!/(k! (n-k)!) p^k (1-p)^(n-k)` for `k >= 0`. /// /// # Plot diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 9aa22ac75b..b7b155d4e6 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -7,23 +7,34 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Cauchy distribution. +//! The Cauchy distribution `Cauchy(x₀, γ)`. use crate::{Distribution, Standard}; use core::fmt; use num_traits::{Float, FloatConst}; use rand::Rng; -/// The Cauchy distribution `Cauchy(median, scale)`. +/// The Cauchy distribution `Cauchy(x₀, γ)`. +/// +/// # Parameters +/// +/// `x₀` (median): The location of the peak of the distribution. +/// +/// `γ` (scale): The scale parameter. +/// +/// # Description /// /// The Cauchy distribution is a continuous probability distribution with -/// parameters `median` (`x₀`) and `scale` (`γ`). -/// -/// This distribution has a density function: -/// `f(x) = 1 / (pi * scale * (1 + ((x - median) / scale)^2))` -/// -/// Note that at least for `f32`, results are not fully portable due to minor -/// differences in the target system's *tan* implementation, `tanf`. +/// parameters `x₀` (median) and `γ` (scale). +/// It describes the distribution of the ratio of two independent +/// normally distributed random variables with means `x₀` and scales `γ`. +/// In other words, if `X` and `Y` are independent normally distributed +/// random variables with means `x₀` and scales `γ`, respectively, then +/// `X / Y` has a Cauchy distribution. +/// +/// # Density function +/// +/// `f(x) = 1 / (π * γ * (1 + ((x - x₀) / γ)²))` /// /// # Plot /// @@ -31,7 +42,8 @@ use rand::Rng; /// Note how the median parameter `x₀` shifts the distribution along the x-axis, /// and how the scale `γ` changes the density around the median. /// -/// The standard Cauchy distribution is the special case with `median = 0` and `scale = 1`. +/// The `standard Cauchy distribution` is the special case with `x₀ = 0` and `γ = 1`, +/// which corresponds to the ratio of two [`StandardNormal`](crate::StandardNormal) distributions. /// /// ![Cauchy distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/cauchy.svg) /// @@ -44,6 +56,11 @@ use rand::Rng; /// let v = cau.sample(&mut rand::thread_rng()); /// println!("{} is from a Cauchy(2, 5) distribution", v); /// ``` +/// +/// # Notes +/// +/// Note that at least for `f32`, results are not fully portable due to minor +/// differences in the target system's *tan* implementation, `tanf`. #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Cauchy diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index 8d50ab74a9..0563035e80 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -7,7 +7,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The dirichlet distribution. +//! The dirichlet distribution `Dirichlet(α₁, α₂, ..., αₙ)`. + #![cfg(feature = "alloc")] use crate::{Beta, Distribution, Exp1, Gamma, Open01, StandardNormal}; use core::fmt; @@ -185,11 +186,19 @@ where FromBeta(DirichletFromBeta), } -/// The Dirichlet distribution `Dirichlet(alpha)`. +/// The Dirichlet distribution `Dirichlet(α₁, α₂, ..., αₙ)`. +/// +/// # Parameters +/// +/// `α` (alpha): A vector of positive reals `[α₁, α₂, ..., αₙ]`. +/// +/// # Description /// /// The Dirichlet distribution is a family of continuous multivariate -/// probability distributions parameterized by a vector alpha of positive reals. -/// It is a multivariate generalization of the beta distribution. +/// probability distributions parameterized by a vector of positive +/// real numbers `α₁, α₂, ..., αₙ`, where `n` is the number of dimensions +/// of the distribution. +/// It is a multivariate generalization of the [`Beta`](crate::Beta) distribution. /// /// # Plot /// diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 6604653efc..384228112b 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -7,7 +7,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The exponential distribution. +//! The exponential distribution `Exp(λ)`. use crate::utils::ziggurat; use crate::{ziggurat_tables, Distribution}; @@ -15,27 +15,20 @@ use core::fmt; use num_traits::Float; use rand::Rng; +/// The standard exponential distribution `Exp(1)`. +/// /// Samples floating-point numbers according to the exponential distribution, /// with rate parameter `λ = 1`. This is equivalent to `Exp::new(1.0)` or /// sampling with `-rng.gen::().ln()`, but faster. /// /// See [`Exp`](crate::Exp) for the general exponential distribution. /// -/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact -/// description in the paper was adjusted to use tables for the exponential -/// distribution rather than normal. -/// /// # Plot /// /// The following plot illustrates the exponential distribution with `λ = 1`. /// /// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential_exp1.svg) /// -/// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to -/// Generate Normal Random Samples*]( -/// https://www.doornik.com/research/ziggurat.pdf). -/// Nuffield College, Oxford -/// /// # Example /// ``` /// use rand::prelude::*; @@ -44,6 +37,17 @@ use rand::Rng; /// let val: f64 = thread_rng().sample(Exp1); /// println!("{}", val); /// ``` +/// +/// # Notes +/// +/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact +/// description in the paper was adjusted to use tables for the exponential +/// distribution rather than normal. +/// +/// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to +/// Generate Normal Random Samples*]( +/// https://www.doornik.com/research/ziggurat.pdf). +/// Nuffield College, Oxford #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp1; @@ -81,12 +85,25 @@ impl Distribution for Exp1 { } } -/// The exponential distribution `Exp(lambda)`. +/// The exponential distribution `Exp(λ)`. +/// +/// # Parameters +/// +/// `λ` (lambda): the rate parameter. +/// +/// # Description /// -/// This distribution has density function: `f(x) = λ * exp(-λ * x)` -/// for `x > 0`, when `λ > 0`. For `λ = 0`, all samples yield infinity. +/// The exponential distribution is a continuous probability distribution +/// which describes the time between events in a [`Poisson`](crate::Poisson) +/// process, i.e. a process in which events occur continuously and +/// independently at a constant average rate. /// -/// Note that [`Exp1`](crate::Exp1) is an optimised implementation for `λ = 1`. +/// # Density function +/// +/// `f(x) = λ * exp(-λ * x)` for `x > 0`, when `λ > 0`. +/// +/// For `λ = 0`, all samples yield infinity (because a Poisson process +/// with rate 0 has no events, and so the time between events is infinite). /// /// # Plot /// @@ -106,6 +123,10 @@ impl Distribution for Exp1 { /// let v = exp.sample(&mut rand::thread_rng()); /// println!("{} is from a Exp(2) distribution", v); /// ``` +/// +/// # Notes +/// +/// See [`Exp1`](crate::Exp1) for an optimised implementation for `λ = 1`. #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 5c3ee08696..a541700ddd 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -6,19 +6,31 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Fréchet distribution. +//! The Fréchet distribution `Fréchet(α, μ, σ)`. use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// Samples floating-point numbers according to the Fréchet distribution +/// The Fréchet distribution `Fréchet(α, μ, σ)`. +/// +/// # Parameters +/// +/// `α` (alpha): the shape parameter (α > 0). +/// `μ` (mu): the location parameter. +/// `σ` (sigma): the scale parameter (σ > 0). +/// +/// # Description +/// +/// The Fréchet distribution is a continuous probability distribution +/// which describes the distribution of the maximum (or minimum) of a +/// number of random variables. It is also known as the Type II +/// extreme value distribution. +/// +/// # Density function /// -/// This distribution has density function: -/// `f(x) = [(x - μ) / σ]^(-1 - α) exp[-(x - μ) / σ]^(-α) α / σ`, -/// where `μ` is the location parameter, `σ` the scale parameter, -/// and `α` the shape parameter. +/// `f(x) = [(x - μ) / σ]^(-1 - α) exp[-(x - μ) / σ]^(-α) α / σ` /// /// # Plot /// diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 03562ea42a..5c69fa17ac 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -24,22 +24,26 @@ use rand::Rng; #[cfg(feature = "serde1")] use serde::{Deserialize, Serialize}; -/// The Gamma distribution `Gamma(shape, scale)`. -/// -/// The density function of this distribution is -/// -/// ```text -/// f(x) = x^(k - 1) * exp(-x / θ) / (Γ(k) * θ^k) -/// ``` -/// -/// where `Γ` is the Gamma function, `k` is the shape and `θ` is the -/// scale and both `k` and `θ` are strictly positive. -/// -/// The algorithm used is that described by Marsaglia & Tsang 2000[^1], -/// falling back to directly sampling from an Exponential for `shape -/// == 1`, and using the boosting technique described in that paper for -/// `shape < 1`. -/// +/// The Gamma distribution `Gamma(k, θ)`. +/// +/// # Parameters +/// +/// `k`: the shape parameter (k > 0). +/// `θ`: the scale parameter (θ > 0). +/// +/// # Description +/// +/// The Gamma distribution is a continuous probability distribution +/// which describes the time until `k` events occur in a Poisson +/// process with rate `θ`. It is the generalization of the +/// Exponential distribution. +/// +/// # Density function +/// +/// `f(x) = x^(k - 1) * exp(-x / θ) / (Γ(k) * θ^k)` for `x > 0`. +/// +/// where `Γ` is the [gamma function](https://en.wikipedia.org/wiki/Gamma_function). +/// /// # Plot /// /// The following plot illustrates the Gamma distribution with @@ -58,6 +62,13 @@ use serde::{Deserialize, Serialize}; /// let v = gamma.sample(&mut rand::thread_rng()); /// println!("{} is from a Gamma(2, 5) distribution", v); /// ``` +/// +/// # Notes +/// +/// The algorithm used is that described by Marsaglia & Tsang 2000[^1], +/// falling back to directly sampling from an Exponential for `shape +/// == 1`, and using the boosting technique described in that paper for +/// `shape < 1`. /// /// [^1]: George Marsaglia and Wai Wan Tsang. 2000. "A Simple Method for /// Generating Gamma Variables" *ACM Trans. Math. Softw.* 26, 3 @@ -295,12 +306,6 @@ where /// let v = chi.sample(&mut rand::thread_rng()); /// println!("{} is from a χ²(11) distribution", v) /// ``` -/// -/// # Diagram -/// -/// The diagram shows the chi-squared distribution with varying degrees of freedom. -/// -/// ![Chi-squared distribution]() #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))] pub struct ChiSquared diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index deb19048a4..60fcbf9345 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -43,7 +43,7 @@ enum SamplingMethod { /// /// The following plot of the hypergeometric distribution illustrates the probability of drawing /// `k` successes in `n = 10` draws from a population of `N = 50` items, of which either `K = 12` -/// or `K = 25` are successes. +/// or `K = 35` are successes. /// /// ![Hypergeometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/hypergeometric.svg) /// diff --git a/rand_distr/src/pert.rs b/rand_distr/src/pert.rs index d99d60d52d..4032a4bef5 100644 --- a/rand_distr/src/pert.rs +++ b/rand_distr/src/pert.rs @@ -18,7 +18,6 @@ use rand::Rng; /// parameterised by a range and a mode within that range. Unlike the /// [`Triangular`] distribution, the probability density function of the PERT /// distribution is smooth, with a configurable weighting around the mode. -/// If left unspecified, the default value of `shape` is `4.0`. /// /// # Plot /// diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index b08bee49fd..d3b0c04111 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -20,13 +20,13 @@ use rand::Rng; /// rate parameter `λ`. It models the number of events occurring in a fixed /// interval of time or space. /// -/// This distribution has a density function: +/// This distribution has density function: /// `f(k) = λ^k * exp(-λ) / k!` for `k >= 0`. /// /// # Plot /// /// The following plot shows the Poisson distribution with various values of `λ`. -/// Note how a higher `λ` results in more expected events per unit interval. +/// Note how the expected number of events increases with `λ`. /// /// ![Poisson distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/poisson.svg) /// diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index a8a46b0e3c..e7dab863f9 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -6,7 +6,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Bernoulli distribution. +//! The Bernoulli distribution `Bernoulli(p)`. use crate::distributions::Distribution; use crate::Rng; @@ -15,9 +15,24 @@ use core::fmt; #[cfg(feature = "serde1")] use serde::{Deserialize, Serialize}; -/// The Bernoulli distribution. +/// The Bernoulli distribution `Bernoulli(p)`. +/// +/// # Parameters +/// +/// `p`: Probability of success. +/// +/// # Description /// -/// This is a special case of the Binomial distribution where `n = 1`. +/// This is a special case of the Binomial distribution where `n = 1`, +/// e.g. a single trial with probability `p` of success and probability +/// `1 - p` of failure. +/// +/// # Plot +/// +/// The following plot shows the Bernoulli distribution with `p = 0.1`, +/// `p = 0.5`, and `p = 0.9`. +/// +/// ![Bernoulli distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/bernoulli.svg) /// /// # Example /// From 4f201ba8d03f2f6139168149028cc2191f28f574 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 18 Jun 2024 13:23:51 +0200 Subject: [PATCH 17/29] Update documentation for t-distribution --- rand_distr/src/gamma.rs | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 5c69fa17ac..602ca3248a 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -25,25 +25,25 @@ use rand::Rng; use serde::{Deserialize, Serialize}; /// The Gamma distribution `Gamma(k, θ)`. -/// +/// /// # Parameters -/// +/// /// `k`: the shape parameter (k > 0). /// `θ`: the scale parameter (θ > 0). -/// +/// /// # Description -/// +/// /// The Gamma distribution is a continuous probability distribution /// which describes the time until `k` events occur in a Poisson /// process with rate `θ`. It is the generalization of the /// Exponential distribution. -/// +/// /// # Density function /// /// `f(x) = x^(k - 1) * exp(-x / θ) / (Γ(k) * θ^k)` for `x > 0`. /// /// where `Γ` is the [gamma function](https://en.wikipedia.org/wiki/Gamma_function). -/// +/// /// # Plot /// /// The following plot illustrates the Gamma distribution with @@ -62,7 +62,7 @@ use serde::{Deserialize, Serialize}; /// let v = gamma.sample(&mut rand::thread_rng()); /// println!("{} is from a Gamma(2, 5) distribution", v); /// ``` -/// +/// /// # Notes /// /// The algorithm used is that described by Marsaglia & Tsang 2000[^1], @@ -490,16 +490,23 @@ where } } -/// The Student t-distribution, `t(nu)`, where `nu` is the degrees of -/// freedom. +/// The Student t-distribution, `t(ν)`. +/// +/// # Parameters +/// +/// `ν` (nu): the degrees of freedom. +/// +/// # Description /// -/// This is a continuous probability distribution that arises when -/// estimating the mean of a normally-distributed population in -/// situations where the sample size is small and the population's -/// standard deviation is unknown. +/// The t-distribution is a continuous probability distribution +/// that arises when estimating the mean of a normally-distributed +/// population in situations where the sample size is small and +/// the population's standard deviation is unknown. +/// It is widely used in hypothesis testing. /// -/// For `nu = 1`, this is equivalent to the standard [`Cauchy`](crate::Cauchy) distribution, -/// and as `nu` diverges to infinity, `t(nu)` converges to +/// For `ν = 1`, this is equivalent to the standard +/// [`Cauchy`](crate::Cauchy) distribution, +/// and as `ν` diverges to infinity, `t(ν)` converges to /// [`StandardNormal`](crate::StandardNormal). /// /// # Plot @@ -537,7 +544,7 @@ where Exp1: Distribution, Open01: Distribution, { - /// Create a new Student t distribution with `n` degrees of + /// Create a new Student t-distribution with `n` degrees of /// freedom. pub fn new(n: F) -> Result, ChiSquaredError> { Ok(StudentT { From c1342f3030f726a8f0f3913e5724efe52d0ecc3c Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 18 Jun 2024 13:26:03 +0200 Subject: [PATCH 18/29] Update documentation for StudentT::new --- rand_distr/src/gamma.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 602ca3248a..02869aa3b7 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -544,12 +544,12 @@ where Exp1: Distribution, Open01: Distribution, { - /// Create a new Student t-distribution with `n` degrees of - /// freedom. - pub fn new(n: F) -> Result, ChiSquaredError> { + /// Create a new Student t-distribution with `ν` (nu) + /// degrees of freedom. + pub fn new(nu: F) -> Result, ChiSquaredError> { Ok(StudentT { - chi: ChiSquared::new(n)?, - dof: n, + chi: ChiSquared::new(nu)?, + dof: nu, }) } } From 1fa94f6f23327a1dda3dd746adb0468e1203fbcb Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Tue, 18 Jun 2024 19:23:03 +0200 Subject: [PATCH 19/29] Update documentation --- rand_distr/src/binomial.rs | 16 +++------------- rand_distr/src/cauchy.rs | 12 ++---------- rand_distr/src/dirichlet.rs | 18 ++++++++---------- rand_distr/src/exponential.rs | 19 ++++++------------- rand_distr/src/frechet.rs | 15 ++++----------- rand_distr/src/gamma.rs | 23 ++++++++++------------- 6 files changed, 33 insertions(+), 70 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 48735b3308..9f06985929 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -17,20 +17,10 @@ use num_traits::Float; use rand::Rng; /// The binomial distribution `Binomial(n, p)`. -/// -/// # Parameters -/// -/// `n`: Number of trials. -/// -/// `p`: Probability of success. -/// -/// # Description /// -/// The binomial distribution is a discrete probability distribution with -/// parameters `n` (number of trials) and `p` (probability of success). -/// Given some number of successes `k`, `Binomial(n, p)` describes the -/// probability of seeing `k` successes in `n` independent trials, -/// each of which has success probability `p`. +/// The binomial distribution is a discrete probability distribution +/// which describes the probability of seeing `k` successes in `n` +/// independent trials, each of which has success probability `p`. /// /// # Density function /// diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index b7b155d4e6..50a5c3e606 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -15,22 +15,14 @@ use num_traits::{Float, FloatConst}; use rand::Rng; /// The Cauchy distribution `Cauchy(x₀, γ)`. -/// -/// # Parameters -/// -/// `x₀` (median): The location of the peak of the distribution. -/// -/// `γ` (scale): The scale parameter. -/// -/// # Description /// /// The Cauchy distribution is a continuous probability distribution with -/// parameters `x₀` (median) and `γ` (scale). +/// parameters `x₀` (`median`) and `γ` (`scale`). /// It describes the distribution of the ratio of two independent /// normally distributed random variables with means `x₀` and scales `γ`. /// In other words, if `X` and `Y` are independent normally distributed /// random variables with means `x₀` and scales `γ`, respectively, then -/// `X / Y` has a Cauchy distribution. +/// `X / Y` is `Cauchy(x₀, γ)` distributed. /// /// # Density function /// diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index 0563035e80..77f3214c38 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -186,23 +186,21 @@ where FromBeta(DirichletFromBeta), } -/// The Dirichlet distribution `Dirichlet(α₁, α₂, ..., αₙ)`. -/// -/// # Parameters -/// -/// `α` (alpha): A vector of positive reals `[α₁, α₂, ..., αₙ]`. -/// -/// # Description +/// The Dirichlet distribution `Dirichlet(α₁, α₂, ..., αₖ)`. /// /// The Dirichlet distribution is a family of continuous multivariate /// probability distributions parameterized by a vector of positive -/// real numbers `α₁, α₂, ..., αₙ`, where `n` is the number of dimensions -/// of the distribution. +/// real numbers `α₁, α₂, ..., αₖ`, where `k` is the number of dimensions +/// of the distribution. The distribution is supported on the `k-1`-dimensional +/// simplex, which is the set of points `x = [x₁, x₂, ..., xₖ]` such that +/// `0 ≤ xᵢ ≤ 1` and `∑ xᵢ = 1`. /// It is a multivariate generalization of the [`Beta`](crate::Beta) distribution. +/// The distribution is symmetric when all `αᵢ` are equal. /// /// # Plot /// -/// The following plot illustrates the Dirichlet distribution with various `alpha`s. +/// The following plot illustrates the 2-dimensional simplices for various +/// 3-dimensional Dirichlet distributions. /// /// ![Dirichlet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/dirichlet.png) /// diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 384228112b..e916a15a9f 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -17,9 +17,8 @@ use rand::Rng; /// The standard exponential distribution `Exp(1)`. /// -/// Samples floating-point numbers according to the exponential distribution, -/// with rate parameter `λ = 1`. This is equivalent to `Exp::new(1.0)` or -/// sampling with `-rng.gen::().ln()`, but faster. +/// This is equivalent to `Exp::new(1.0)` or sampling with +/// `-rng.gen::().ln()`, but faster. /// /// See [`Exp`](crate::Exp) for the general exponential distribution. /// @@ -87,23 +86,17 @@ impl Distribution for Exp1 { /// The exponential distribution `Exp(λ)`. /// -/// # Parameters -/// -/// `λ` (lambda): the rate parameter. -/// -/// # Description -/// /// The exponential distribution is a continuous probability distribution -/// which describes the time between events in a [`Poisson`](crate::Poisson) -/// process, i.e. a process in which events occur continuously and -/// independently at a constant average rate. +/// with rate parameter `λ` (`lambda`). It describes the time between events +/// in a [`Poisson`](crate::Poisson) process, i.e. a process in which +/// events occur continuously and independently at a constant average rate. /// /// # Density function /// /// `f(x) = λ * exp(-λ * x)` for `x > 0`, when `λ > 0`. /// /// For `λ = 0`, all samples yield infinity (because a Poisson process -/// with rate 0 has no events, and so the time between events is infinite). +/// with rate 0 has no events). /// /// # Plot /// diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index a541700ddd..781a49360c 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -15,18 +15,11 @@ use rand::Rng; /// The Fréchet distribution `Fréchet(α, μ, σ)`. /// -/// # Parameters -/// -/// `α` (alpha): the shape parameter (α > 0). -/// `μ` (mu): the location parameter. -/// `σ` (sigma): the scale parameter (σ > 0). -/// -/// # Description -/// /// The Fréchet distribution is a continuous probability distribution -/// which describes the distribution of the maximum (or minimum) of a -/// number of random variables. It is also known as the Type II -/// extreme value distribution. +/// with shape parameter `α` (`alpha`), location parameter `μ` (`mu`), +/// and scale parameter `σ` (`sigma`). It describes the distribution +/// of the maximum (or minimum) of a number of random variables. +/// It is also known as the `Type II extreme value distribution`. /// /// # Density function /// diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 02869aa3b7..6b4c980ef2 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -26,17 +26,12 @@ use serde::{Deserialize, Serialize}; /// The Gamma distribution `Gamma(k, θ)`. /// -/// # Parameters -/// -/// `k`: the shape parameter (k > 0). -/// `θ`: the scale parameter (θ > 0). -/// -/// # Description -/// /// The Gamma distribution is a continuous probability distribution -/// which describes the time until `k` events occur in a Poisson -/// process with rate `θ`. It is the generalization of the -/// Exponential distribution. +/// with shape parameter `k > 0` (number of events) and +/// scale parameter `θ > 0` (mean waiting time between events). +/// It describes the time until `k` events occur in a Poisson +/// process with rate `1/θ`. It is the generalization of the +/// [`Exponential`](crate::Exp) distribution. /// /// # Density function /// @@ -282,8 +277,10 @@ where } } -/// The chi-squared distribution `χ²(k)`, where `k` is the degrees of -/// freedom. +/// The chi-squared distribution `χ²(k)`. +/// +/// The chi-squared distribution is a continuous probability +/// distribution with parameter `k > 0` degrees of freedom. /// /// For `k > 0` integral, this distribution is the sum of the squares /// of `k` independent standard normal random variables. For other @@ -292,7 +289,7 @@ where /// /// # Plot /// -/// The plot shows the chi-squared distribution with varying degrees +/// The plot shows the chi-squared distribution with various degrees /// of freedom. /// /// ![Chi-squared distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/chi_squared.svg) From 2d8de9abcb81dd2b966aa6d8770c826ecc6a0c58 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Wed, 19 Jun 2024 11:50:33 +0200 Subject: [PATCH 20/29] Update documentation --- rand_distr/src/exponential.rs | 9 +++-- rand_distr/src/frechet.rs | 3 +- rand_distr/src/gamma.rs | 3 +- rand_distr/src/geometric.rs | 40 +++++++++++++---------- rand_distr/src/gumbel.rs | 13 +++++--- rand_distr/src/hypergeometric.rs | 13 ++++---- rand_distr/src/inverse_gaussian.rs | 12 ++++--- rand_distr/src/normal_inverse_gaussian.rs | 2 +- 8 files changed, 53 insertions(+), 42 deletions(-) diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index e916a15a9f..f121e95797 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -29,6 +29,7 @@ use rand::Rng; /// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential_exp1.svg) /// /// # Example +/// /// ``` /// use rand::prelude::*; /// use rand_distr::Exp1; @@ -88,9 +89,11 @@ impl Distribution for Exp1 { /// /// The exponential distribution is a continuous probability distribution /// with rate parameter `λ` (`lambda`). It describes the time between events -/// in a [`Poisson`](crate::Poisson) process, i.e. a process in which +/// in a [`Poisson`](crate::Poisson) process, i.e. a process in which /// events occur continuously and independently at a constant average rate. /// +/// See [`Exp1`](crate::Exp1) for an optimised implementation for `λ = 1`. +/// /// # Density function /// /// `f(x) = λ * exp(-λ * x)` for `x > 0`, when `λ > 0`. @@ -116,10 +119,6 @@ impl Distribution for Exp1 { /// let v = exp.sample(&mut rand::thread_rng()); /// println!("{} is from a Exp(2) distribution", v); /// ``` -/// -/// # Notes -/// -/// See [`Exp1`](crate::Exp1) for an optimised implementation for `λ = 1`. #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Exp diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 781a49360c..dfb14c8fb0 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -19,7 +19,7 @@ use rand::Rng; /// with shape parameter `α` (`alpha`), location parameter `μ` (`mu`), /// and scale parameter `σ` (`sigma`). It describes the distribution /// of the maximum (or minimum) of a number of random variables. -/// It is also known as the `Type II extreme value distribution`. +/// It is also known as the Type II extreme value distribution. /// /// # Density function /// @@ -35,6 +35,7 @@ use rand::Rng; /// ![Fréchet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/frechet.svg) /// /// # Example +/// /// ``` /// use rand::prelude::*; /// use rand_distr::Frechet; diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 6b4c980ef2..774b8a7621 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -35,8 +35,7 @@ use serde::{Deserialize, Serialize}; /// /// # Density function /// -/// `f(x) = x^(k - 1) * exp(-x / θ) / (Γ(k) * θ^k)` for `x > 0`. -/// +/// `f(x) = x^(k - 1) * exp(-x / θ) / (Γ(k) * θ^k)` for `x > 0`, /// where `Γ` is the [gamma function](https://en.wikipedia.org/wiki/Gamma_function). /// /// # Plot diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index df57cd6ca8..59f6825f88 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -1,4 +1,4 @@ -//! The geometric distribution. +//! The geometric distribution `Geometric(p)`. use crate::Distribution; use core::fmt; @@ -6,28 +6,31 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The geometric distribution `Geometric(p)` bounded to `[0, u64::MAX]`. +/// The geometric distribution `Geometric(p)`. /// -/// This is the probability distribution of the number of failures before the -/// first success in a series of Bernoulli trials. It has the density function -/// `f(k) = (1 - p)^k p` for `k >= 0`, where `p` is the probability of success -/// on each trial. +/// This is the probability distribution of the number of failures +/// (bounded to `[0, u64::MAX]`) before the first success in a +/// series of [`Bernoulli`](crate::Bernoulli) trials, where the +/// probability of success on each trial is `p`. /// /// This is the discrete analogue of the [exponential distribution](crate::Exp). /// -/// Note that [`StandardGeometric`](crate::StandardGeometric) is an optimised +/// See [`StandardGeometric`](crate::StandardGeometric) for an optimised /// implementation for `p = 0.5`. +/// +/// # Density function +/// +/// `f(k) = (1 - p)^k p` for `k >= 0`. /// /// # Plot -/// -/// The following plot illustrates the geometric distribution for various values of `p`. -/// Note how higher `p` values shift the distribution to the left, and the mean -/// of the distribution is `1/p`. +/// +/// The following plot illustrates the geometric distribution for various +/// values of `p`. Note how higher `p` values shift the distribution to +/// the left, and the mean of the distribution is `1/p`. /// /// ![Geometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/geometric.svg) /// /// # Example -/// /// ``` /// use rand_distr::{Geometric, Distribution}; /// @@ -148,15 +151,12 @@ impl Distribution for Geometric { } } -/// Samples integers according to the geometric distribution with success -/// probability `p = 0.5`. This is equivalent to `Geometeric::new(0.5)`, -/// but faster. +/// The standard geometric distribution `Geometric(0.5)`. +/// +/// This is equivalent to `Geometric::new(0.5)`, but faster. /// /// See [`Geometric`](crate::Geometric) for the general geometric distribution. /// -/// Implemented via iterated -/// [`Rng::gen::().leading_zeros()`](Rng::gen::().leading_zeros()). -/// /// # Plot /// /// The following plot illustrates the standard geometric distribution. @@ -171,6 +171,10 @@ impl Distribution for Geometric { /// let v = StandardGeometric.sample(&mut thread_rng()); /// println!("{} is from a Geometric(0.5) distribution", v); /// ``` +/// +/// # Notes +/// Implemented via iterated +/// [`Rng::gen::().leading_zeros()`](Rng::gen::().leading_zeros()). #[derive(Copy, Clone, Debug)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct StandardGeometric; diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index e59761aa15..688786b9d0 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -6,19 +6,22 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Gumbel distribution. +//! The Gumbel distribution `Gumbel(μ, σ)`. use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// The Gumbel distribution `Gumbel(location, scale)`. +/// The Gumbel distribution `Gumbel(μ, σ)`. /// -/// The Gumbel distribution is a continuous probability distribution with -/// location parameter `μ` and scale parameter `σ`. +/// The Gumbel distribution is a continuous probability distribution +/// with location parameter `μ` and scale parameter `σ`. +/// It is used to model the distribution of the maximum (or minimum) +/// of a number of samples of various distributions. +/// +/// # Density function /// -/// This distribution has density function: /// `f(x) = exp(-(z + exp(-z))) / σ`, where `z = (x - μ) / σ`. /// /// # Plot diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index 60fcbf9345..8d36fa2e8b 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -1,4 +1,4 @@ -//! The hypergeometric distribution. +//! The hypergeometric distribution `Hypergeometric(N, K, n)`. use crate::Distribution; use core::fmt; @@ -31,13 +31,15 @@ enum SamplingMethod { /// /// This is the distribution of successes in samples of size `n` drawn without /// replacement from a population of size `N` containing `K` success states. -/// It has the density function: -/// `f(k) = binomial(K, k) * binomial(N-K, n-k) / binomial(N, n)`, -/// where `binomial(a, b) = a! / (b! * (a - b)!)`. /// -/// The [binomial distribution](crate::Binomial) is the analogous distribution +/// See the [binomial distribution](crate::Binomial) for the analogous distribution /// for sampling with replacement. It is a good approximation when the population /// size is much larger than the sample size. +/// +/// # Density function +/// +/// `f(k) = binomial(K, k) * binomial(N-K, n-k) / binomial(N, n)`, +/// where `binomial(a, b) = a! / (b! * (a - b)!)`. /// /// # Plot /// @@ -48,7 +50,6 @@ enum SamplingMethod { /// ![Hypergeometric distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/hypergeometric.svg) /// /// # Example -/// /// ``` /// use rand_distr::{Distribution, Hypergeometric}; /// diff --git a/rand_distr/src/inverse_gaussian.rs b/rand_distr/src/inverse_gaussian.rs index 5dc0d32a1a..8c26f73086 100644 --- a/rand_distr/src/inverse_gaussian.rs +++ b/rand_distr/src/inverse_gaussian.rs @@ -1,3 +1,5 @@ +//! The inverse Gaussian distribution `IG(μ, λ)`. + use crate::{Distribution, Standard, StandardNormal}; use core::fmt; use num_traits::Float; @@ -24,15 +26,17 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error {} -/// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) `IG(μ, λ)` +/// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) `IG(μ, λ)`. /// -/// This is a continuous probability distribution with two parameters, `mean` (`μ`) and `shape` (`λ`), -/// defined for `x > 0`. +/// This is a continuous probability distribution with +/// mean parameter `μ` (`mu`) and shape parameter `λ` +/// (`lambda`), defined for `x > 0`. /// It is also known as the Wald distribution. /// /// # Plot /// -/// The following plot shows the inverse Gaussian distribution with various values of `μ` and `λ`. +/// The following plot shows the inverse Gaussian distribution +/// with various values of `μ` and `λ`. /// /// ![Inverse Gaussian distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/inverse_gaussian.svg) /// diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 463c3a2a9c..ece0c289d2 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -32,7 +32,7 @@ impl std::error::Error for Error {} /// /// This is a continuous probability distribution with two parameters, `alpha` and `beta`, /// defined in `(-∞, ∞)`. -/// It is also known as the `normal-Wald` distribution. +/// It is also known as the normal-Wald distribution. /// /// # Plot /// From 2319a657d33446177e19610fa1164416c7c492d1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 23 Jun 2024 00:28:56 +0200 Subject: [PATCH 21/29] Update Inverse Gaussian and Normal --- rand_distr/src/inverse_gaussian.rs | 5 ++- rand_distr/src/normal.rs | 52 ++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/rand_distr/src/inverse_gaussian.rs b/rand_distr/src/inverse_gaussian.rs index 8c26f73086..1039f6045b 100644 --- a/rand_distr/src/inverse_gaussian.rs +++ b/rand_distr/src/inverse_gaussian.rs @@ -28,9 +28,8 @@ impl std::error::Error for Error {} /// The [inverse Gaussian distribution](https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) `IG(μ, λ)`. /// -/// This is a continuous probability distribution with -/// mean parameter `μ` (`mu`) and shape parameter `λ` -/// (`lambda`), defined for `x > 0`. +/// This is a continuous probability distribution with mean parameter `μ` (`mu`) +/// and shape parameter `λ` (`lambda`), defined for `x > 0`. /// It is also known as the Wald distribution. /// /// # Plot diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index 1a0488c862..ddcedc3f3a 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -7,7 +7,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The normal and derived distributions. +//! The Normal and derived distributions. use crate::utils::ziggurat; use crate::{ziggurat_tables, Distribution, Open01}; @@ -15,19 +15,17 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// Samples floating-point numbers according to the normal distribution -/// `N(0, 1)` (a.k.a. a standard normal, or Gaussian). This is equivalent to -/// `Normal::new(0.0, 1.0)` but faster. +/// The standard Normal distribution `N(0, 1)`. +/// +/// This is equivalent to `Normal::new(0.0, 1.0)`, but faster. /// -/// See [`Normal`] for the general normal distribution. -/// -/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. +/// See [`Normal`](crate::Normal) for the general Normal distribution. /// /// # Plot /// -/// The following diagram shows the standard normal distribution. +/// The following diagram shows the standard Normal distribution. /// -/// ![Standard normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/standard_normal.svg) +/// ![Standard Normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/standard_normal.svg) /// /// # Example /// ``` @@ -38,6 +36,10 @@ use rand::Rng; /// println!("{}", val); /// ``` /// +/// # Notes +/// +/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. +/// /// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to /// Generate Normal Random Samples*]( /// https://www.doornik.com/research/ziggurat.pdf). @@ -98,19 +100,26 @@ impl Distribution for StandardNormal { } } -/// The normal distribution `N(mean, std_dev**2)`. +/// The Normal distribution `N(μ, σ²)`. +/// +/// The Normal distribution, also known as the Gaussian distribution or +/// bell curve, is a continuous probability distribution with parameters +/// `μ` (`mu`, mean) and `σ` (`sigma`, standard deviation). +/// It is used to model continuous data that tend to cluster around a mean. +/// The Normal distribution is symmetric and characterized by its bell-shaped curve. /// -/// This uses the ZIGNOR variant of the Ziggurat method, see [`StandardNormal`] -/// for more details. -/// -/// Note that [`StandardNormal`] is an optimised implementation for mean 0, and -/// standard deviation 1. +/// See [`StandardNormal`](crate::StandardNormal) for an +/// optimised implementation for `μ = 0` and `σ = 1`. +/// +/// # Density function +/// +/// `f(x) = (1 / sqrt(2π σ²)) * exp(-((x - μ)² / (2σ²)))` /// /// # Plot /// -/// The following diagram shows the normal distribution with various values of `μ` +/// The following diagram shows the Normal distribution with various values of `μ` /// and `σ`. -/// The blue curve is the [`StandardNormal`] distribution, `N(0, 1)`. +/// The blue curve is the [`StandardNormal`](crate::StandardNormal) distribution, `N(0, 1)`. /// /// ![Normal distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/normal.svg) /// @@ -124,6 +133,15 @@ impl Distribution for StandardNormal { /// let v = normal.sample(&mut rand::thread_rng()); /// println!("{} is from a N(2, 9) distribution", v) /// ``` +/// +/// # Notes +/// +/// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. +/// +/// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to +/// Generate Normal Random Samples*]( +/// https://www.doornik.com/research/ziggurat.pdf). +/// Nuffield College, Oxford #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))] pub struct Normal From 9829ca1fd11144a78a3f3263da961b66e8252343 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 12:25:41 +0200 Subject: [PATCH 22/29] =?UTF-8?q?Update=20documentation=20-=20Change=20par?= =?UTF-8?q?ameter=20of=20Gumbel=20from=20=CF=83=20to=20=CE=B2=20-=20Skew?= =?UTF-8?q?=20normal=20now=20uses=20the=20correct=20symbols=20=CE=BE,=20?= =?UTF-8?q?=CF=89,=20=CE=B1=20-=20Other=20tweaks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rand_distr/src/gumbel.rs | 12 ++++++------ rand_distr/src/pareto.rs | 8 ++++---- rand_distr/src/poisson.rs | 6 +++--- rand_distr/src/skew_normal.rs | 14 +++++++++----- rand_distr/src/weibull.rs | 8 +++++--- rand_distr/src/zipf.rs | 23 ++++++++++++----------- 6 files changed, 39 insertions(+), 32 deletions(-) diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index 688786b9d0..f2b388ee09 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -6,29 +6,29 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Gumbel distribution `Gumbel(μ, σ)`. +//! The Gumbel distribution `Gumbel(μ, β)`. use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// The Gumbel distribution `Gumbel(μ, σ)`. +/// The Gumbel distribution `Gumbel(μ, β)`. /// /// The Gumbel distribution is a continuous probability distribution -/// with location parameter `μ` and scale parameter `σ`. +/// with location parameter `μ` (`mu`) and scale parameter `β` (`beta`). /// It is used to model the distribution of the maximum (or minimum) /// of a number of samples of various distributions. /// /// # Density function /// -/// `f(x) = exp(-(z + exp(-z))) / σ`, where `z = (x - μ) / σ`. +/// `f(x) = exp(-(z + exp(-z))) / β`, where `z = (x - μ) / β`. /// /// # Plot /// -/// The following plot illustrates the Gumbel distribution with various values of `μ` and `σ`. +/// The following plot illustrates the Gumbel distribution with various values of `μ` and `β`. /// Note how the location parameter `μ` shifts the distribution along the x-axis, -/// and the scale parameter `σ` changes the density around `μ`. +/// and the scale parameter `β` changes the density around `μ`. /// Note also the asymptotic behavior of the distribution towards the right. /// /// ![Gumbel distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/gumbel.svg) diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index 4865819d12..904f63d1b8 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -6,24 +6,24 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Pareto distribution. +//! The Pareto distribution `Pareto(α, xₘ)`. use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// The Pareto distribution `Pareto(scale, shape)`. +/// The Pareto distribution `Pareto(α, xₘ)`. /// /// The Pareto distribution is a continuous probability distribution with -/// parameters `scale` (`α`) and `shape` (`x``m` or `k`). +/// parameters `scale` (`α`) and `shape` (`xₘ` or `k`). /// /// # Plot /// /// The following plot shows the Pareto distribution with various values of /// `scale` and `shape`. /// Note how the scale parameter `α` corresponds to the height of the jump -/// in density at `x = x``m`, and to the rate of decay in the tail. +/// in density at `x = xₘ`, and to the rate of decay in the tail. /// /// ![Pareto distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pareto.svg) /// diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index d3b0c04111..9186a39340 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -7,17 +7,17 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Poisson distribution. +//! The Poisson distribution `Poisson(λ)`. use crate::{Cauchy, Distribution, Standard}; use core::fmt; use num_traits::{Float, FloatConst}; use rand::Rng; -/// The Poisson distribution `Poisson(lambda)`. +/// The Poisson distribution `Poisson(λ)`. /// /// The Poisson distribution is a discrete probability distribution with -/// rate parameter `λ`. It models the number of events occurring in a fixed +/// rate parameter `λ` (lambda). It models the number of events occurring in a fixed /// interval of time or space. /// /// This distribution has density function: diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 067adb15ba..dfeb0f0eee 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -6,21 +6,25 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Skew Normal distribution. +//! The Skew Normal distribution `SN(ξ, ω, α)`. use crate::{Distribution, StandardNormal}; use core::fmt; use num_traits::Float; use rand::Rng; -/// The [skew normal distribution] `SN(location, scale, shape)`. +/// The [skew normal distribution] `SN(ξ, ω, α)`. /// /// The skew normal distribution is a generalization of the /// [`Normal`](crate::Normal) distribution to allow for non-zero skewness. +/// It has parameters `location` (`ξ`, zeta), `scale` (`ω`, omega), and +/// `shape` (`α`, alpha). /// -/// The `location` and `scale` parameters correspond to the -/// mean and standard deviation of the normal distribution, -/// respectively. The `shape` parameter controls the skewness. +/// The `ξ` and `ω` parameters correspond to the mean `μ` and standard +/// deviation `σ` of the normal distribution, respectively. +/// The `α` parameter controls the skewness. +/// +/// # Density function /// /// It has the density function, for `scale > 0`, /// `f(x) = 2 / scale * phi((x - location) / scale) * Phi(alpha * (x - location) / scale)` diff --git a/rand_distr/src/weibull.rs b/rand_distr/src/weibull.rs index 0f9a5f1780..0356460101 100644 --- a/rand_distr/src/weibull.rs +++ b/rand_distr/src/weibull.rs @@ -6,15 +6,17 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Weibull distribution. +//! The Weibull distribution `Weibull(λ, k)` use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// Samples floating-point numbers according to the Weibull distribution. -/// The Weibull distribution has two parameters, `scale` (`λ`) and `shape` (`k`). +/// The Weibull distribution `Weibull(λ, k)`. +/// This is a family of continuous probability distributions with parameters +/// `scale` (`λ`, lambda) and `shape` (`k`). It is used to model reliability +/// data, life data, and accelerated life testing data. /// /// # Plot /// diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index d80c642fb3..4c8d988033 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -15,12 +15,15 @@ use rand::{distributions::OpenClosed01, Rng}; /// The Zeta distribution `Zeta(a)`. /// -/// The Zeta distribution is a discrete probability distribution with parameter -/// `a`. It is a special case of the [`Zipf`] distribution with `n = ∞`. +/// The [Zeta distribution](https://en.wikipedia.org/wiki/Zeta_distribution) +/// is a discrete probability distribution with parameter `a`. +/// It is a special case of the [`Zipf`] distribution with `n = ∞`. /// It is also known as the discrete Pareto, Riemann-Zeta, Zipf, or Zipf–Estoup distribution. /// -/// It has the density function `f(k) = k^(-a) / C(a)` for `k >= 1`, where `a` -/// is the parameter and `C(a)` is the Riemann zeta function. +/// # Density function +/// +/// `f(k) = k^(-a) / ζ(a)` for `k >= 1`, where `ζ` is the +/// [Riemann zeta function](https://en.wikipedia.org/wiki/Riemann_zeta_function). /// /// # Plot /// @@ -37,7 +40,7 @@ use rand::{distributions::OpenClosed01, Rng}; /// println!("{}", val); /// ``` /// -/// # Remarks +/// # Notes /// /// The zeta distribution has no upper limit. Sampled values may be infinite. /// In particular, a value of infinity might be returned for the following @@ -47,11 +50,9 @@ use rand::{distributions::OpenClosed01, Rng}; /// /// # Implementation details /// -/// We are using the algorithm from [Non-Uniform Random Variate Generation], +/// We are using the algorithm from +/// [Non-Uniform Random Variate Generation](https://doi.org/10.1007/978-1-4613-8643-8), /// Section 6.1, page 551. -/// -/// [zeta distribution]: https://en.wikipedia.org/wiki/Zeta_distribution -/// [Non-Uniform Random Variate Generation]: https://doi.org/10.1007/978-1-4613-8643-8 #[derive(Clone, Copy, Debug, PartialEq)] pub struct Zeta where @@ -131,13 +132,13 @@ where } } -/// Samples integers according to the Zipf distribution. +/// The Zipf distribution `Zipf(n, s)`. /// /// The samples follow Zipf's law: The frequency of each sample from a finite /// set of size `n` is inversely proportional to a power of its frequency rank /// (with exponent `s`). /// -/// For large `n`, this converges to the [`Zeta`] distribution. +/// For large `n`, this converges to the [`Zeta`](crate::Zeta) distribution. /// /// For `s = 0`, this becomes a uniform distribution. /// From 74ec2289c2c822309e683db98aec99dcb9f60f18 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:03:37 +0200 Subject: [PATCH 23/29] Add Wikipedia links --- rand_distr/src/binomial.rs | 2 +- rand_distr/src/cauchy.rs | 2 +- rand_distr/src/dirichlet.rs | 2 +- rand_distr/src/exponential.rs | 2 +- rand_distr/src/frechet.rs | 2 +- rand_distr/src/gamma.rs | 24 ++++++++++------------- rand_distr/src/geometric.rs | 2 +- rand_distr/src/gumbel.rs | 2 +- rand_distr/src/hypergeometric.rs | 2 +- rand_distr/src/normal.rs | 11 ++++++----- rand_distr/src/normal_inverse_gaussian.rs | 2 +- rand_distr/src/pareto.rs | 2 +- rand_distr/src/pert.rs | 2 +- rand_distr/src/poisson.rs | 2 +- rand_distr/src/triangular.rs | 2 +- rand_distr/src/weibull.rs | 3 ++- rand_distr/src/zipf.rs | 10 +++++----- src/distributions/bernoulli.rs | 14 ++++--------- src/distributions/weighted_index.rs | 2 +- 19 files changed, 41 insertions(+), 49 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index 9f06985929..a62646bbe8 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -16,7 +16,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The binomial distribution `Binomial(n, p)`. +/// The [binomial distribution](https://en.wikipedia.org/wiki/Binomial_distribution) `Binomial(n, p)`. /// /// The binomial distribution is a discrete probability distribution /// which describes the probability of seeing `k` successes in `n` diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 50a5c3e606..60f7bf2d68 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -14,7 +14,7 @@ use core::fmt; use num_traits::{Float, FloatConst}; use rand::Rng; -/// The Cauchy distribution `Cauchy(x₀, γ)`. +/// The [Cauchy distribution](https://en.wikipedia.org/wiki/Cauchy_distribution) `Cauchy(x₀, γ)`. /// /// The Cauchy distribution is a continuous probability distribution with /// parameters `x₀` (`median`) and `γ` (`scale`). diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index 77f3214c38..cd59764ac6 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -186,7 +186,7 @@ where FromBeta(DirichletFromBeta), } -/// The Dirichlet distribution `Dirichlet(α₁, α₂, ..., αₖ)`. +/// The [Dirichlet distribution](https://en.wikipedia.org/wiki/Dirichlet_distribution) `Dirichlet(α₁, α₂, ..., αₖ)`. /// /// The Dirichlet distribution is a family of continuous multivariate /// probability distributions parameterized by a vector of positive diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index f121e95797..01d2dffb5e 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -85,7 +85,7 @@ impl Distribution for Exp1 { } } -/// The exponential distribution `Exp(λ)`. +/// The [exponential distribution](https://en.wikipedia.org/wiki/Exponential_distribution) `Exp(λ)`. /// /// The exponential distribution is a continuous probability distribution /// with rate parameter `λ` (`lambda`). It describes the time between events diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index dfb14c8fb0..b840fb1d00 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -13,7 +13,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The Fréchet distribution `Fréchet(α, μ, σ)`. +/// The [Fréchet distribution](https://en.wikipedia.org/wiki/Fr%C3%A9chet_distribution) `Fréchet(α, μ, σ)`. /// /// The Fréchet distribution is a continuous probability distribution /// with shape parameter `α` (`alpha`), location parameter `μ` (`mu`), diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 774b8a7621..6f40f28c0a 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -24,7 +24,7 @@ use rand::Rng; #[cfg(feature = "serde1")] use serde::{Deserialize, Serialize}; -/// The Gamma distribution `Gamma(k, θ)`. +/// The [Gamma distribution](https://en.wikipedia.org/wiki/Gamma_distribution) `Gamma(k, θ)`. /// /// The Gamma distribution is a continuous probability distribution /// with shape parameter `k > 0` (number of events) and @@ -276,7 +276,7 @@ where } } -/// The chi-squared distribution `χ²(k)`. +/// The [chi-squared distribution](https://en.wikipedia.org/wiki/Chi-squared_distribution) `χ²(k)`. /// /// The chi-squared distribution is a continuous probability /// distribution with parameter `k > 0` degrees of freedom. @@ -391,7 +391,7 @@ where } } -/// The Fisher F-distribution `F(m, n)`. +/// The [Fisher F-distribution](https://en.wikipedia.org/wiki/F-distribution) `F(m, n)`. /// /// This distribution is equivalent to the ratio of two normalised /// chi-squared distributions, that is, `F(m,n) = (χ²(m)/m) / @@ -486,16 +486,11 @@ where } } -/// The Student t-distribution, `t(ν)`. -/// -/// # Parameters -/// -/// `ν` (nu): the degrees of freedom. -/// -/// # Description +/// The [Student t-distribution](https://en.wikipedia.org/wiki/Student%27s_t-distribution) `t(ν)`. /// /// The t-distribution is a continuous probability distribution -/// that arises when estimating the mean of a normally-distributed +/// parameterized by `ν` (`nu`), the degrees of freedom, which +/// arises when estimating the mean of a normally-distributed /// population in situations where the sample size is small and /// the population's standard deviation is unknown. /// It is widely used in hypothesis testing. @@ -596,14 +591,15 @@ struct BC { kappa2: N, } -/// The Beta distribution `Beta(alpha, beta)`. +/// The [Beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) `Beta(α, β)`. /// /// The Beta distribution is a continuous probability distribution /// defined on the interval `[0, 1]`. It is the conjugate prior for the /// parameter `p` of the [`Binomial`][crate::Binomial] distribution. /// -/// It has two shape parameters `α` and `β` which control the shape of -/// the distribution. The distribution is symmetric when `α = β`. +/// It has two shape parameters `α` (alpha) and `β` (beta) which control +/// the shape of the distribution. Both `a` and `β` must be greater than zero. +/// The distribution is symmetric when `α = β`. /// /// # Plot /// diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index 59f6825f88..b96b7db585 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -6,7 +6,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The geometric distribution `Geometric(p)`. +/// The [geometric distribution](https://en.wikipedia.org/wiki/Geometric_distribution) `Geometric(p)`. /// /// This is the probability distribution of the number of failures /// (bounded to `[0, u64::MAX]`) before the first success in a diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index f2b388ee09..b15c09c103 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -13,7 +13,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The Gumbel distribution `Gumbel(μ, β)`. +/// The [Gumbel distribution](https://en.wikipedia.org/wiki/Gumbel_distribution) `Gumbel(μ, β)`. /// /// The Gumbel distribution is a continuous probability distribution /// with location parameter `μ` (`mu`) and scale parameter `β` (`beta`). diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index 8d36fa2e8b..01d3c27be9 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -27,7 +27,7 @@ enum SamplingMethod { }, } -/// The hypergeometric distribution `Hypergeometric(N, K, n)`. +/// The [hypergeometric distribution](https://en.wikipedia.org/wiki/Hypergeometric_distribution) `Hypergeometric(N, K, n)`. /// /// This is the distribution of successes in samples of size `n` drawn without /// replacement from a population of size `N` containing `K` success states. diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index ddcedc3f3a..de045d11e3 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -100,7 +100,7 @@ impl Distribution for StandardNormal { } } -/// The Normal distribution `N(μ, σ²)`. +/// The [Normal distribution](https://en.wikipedia.org/wiki/Normal_distribution) `N(μ, σ²)`. /// /// The Normal distribution, also known as the Gaussian distribution or /// bell curve, is a continuous probability distribution with parameters @@ -246,10 +246,11 @@ where } } -/// The log-normal distribution `ln N(mean, std_dev**2)`. -/// -/// If `X` is log-normal distributed, then `ln(X)` is `N(mean, std_dev**2)` -/// distributed. +/// The [log-normal distribution](https://en.wikipedia.org/wiki/Log-normal_distribution) `ln N(μ, σ²)`. +/// +/// This is the distribution of the random variable `X = exp(Y)` where `Y` is +/// normally distributed with mean `μ` and variance `σ²`. In other words, if +/// `X` is log-normal distributed, then `ln(X)` is `N(μ, σ²)` distributed. /// /// # Plot /// diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index ece0c289d2..95fb1a22c9 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -28,7 +28,7 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error {} -/// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)` +/// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)`. /// /// This is a continuous probability distribution with two parameters, `alpha` and `beta`, /// defined in `(-∞, ∞)`. diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index 904f63d1b8..8c2c9c6fa4 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -13,7 +13,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The Pareto distribution `Pareto(α, xₘ)`. +/// The [Pareto distribution](https://en.wikipedia.org/wiki/Pareto_distribution) `Pareto(α, xₘ)`. /// /// The Pareto distribution is a continuous probability distribution with /// parameters `scale` (`α`) and `shape` (`xₘ` or `k`). diff --git a/rand_distr/src/pert.rs b/rand_distr/src/pert.rs index 4032a4bef5..535fee571f 100644 --- a/rand_distr/src/pert.rs +++ b/rand_distr/src/pert.rs @@ -12,7 +12,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The PERT distribution `PERT(min, max, mode, shape)`. +/// The [PERT distribution](https://en.wikipedia.org/wiki/PERT_distribution) `PERT(min, max, mode, shape)`. /// /// Similar to the [`Triangular`] distribution, the PERT distribution is /// parameterised by a range and a mode within that range. Unlike the diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index 9186a39340..c867be5ae4 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -14,7 +14,7 @@ use core::fmt; use num_traits::{Float, FloatConst}; use rand::Rng; -/// The Poisson distribution `Poisson(λ)`. +/// The [Poisson distribution](https://en.wikipedia.org/wiki/Poisson_distribution) `Poisson(λ)`. /// /// The Poisson distribution is a discrete probability distribution with /// rate parameter `λ` (lambda). It models the number of events occurring in a fixed diff --git a/rand_distr/src/triangular.rs b/rand_distr/src/triangular.rs index cbd7093dc6..ab7722ac03 100644 --- a/rand_distr/src/triangular.rs +++ b/rand_distr/src/triangular.rs @@ -12,7 +12,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The triangular distribution `Triangular(min, max, mode)`. +/// The [triangular distribution](https://en.wikipedia.org/wiki/Triangular_distribution) `Triangular(min, max, mode)`. /// /// A continuous probability distribution parameterised by a range, and a mode /// (most likely value) within that range. diff --git a/rand_distr/src/weibull.rs b/rand_distr/src/weibull.rs index 0356460101..0069b5d985 100644 --- a/rand_distr/src/weibull.rs +++ b/rand_distr/src/weibull.rs @@ -13,7 +13,8 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The Weibull distribution `Weibull(λ, k)`. +/// The [Weibull distribution](https://en.wikipedia.org/wiki/Weibull_distribution) `Weibull(λ, k)`. +/// /// This is a family of continuous probability distributions with parameters /// `scale` (`λ`, lambda) and `shape` (`k`). It is used to model reliability /// data, life data, and accelerated life testing data. diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index 4c8d988033..48999551e5 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -13,7 +13,7 @@ use core::fmt; use num_traits::Float; use rand::{distributions::OpenClosed01, Rng}; -/// The Zeta distribution `Zeta(a)`. +/// The [Zeta distribution](https://en.wikipedia.org/wiki/Zeta_distribution) `Zeta(a)`. /// /// The [Zeta distribution](https://en.wikipedia.org/wiki/Zeta_distribution) /// is a discrete probability distribution with parameter `a`. @@ -132,11 +132,11 @@ where } } -/// The Zipf distribution `Zipf(n, s)`. +/// The Zipf (Zipfian) distribution `Zipf(n, s)`. /// -/// The samples follow Zipf's law: The frequency of each sample from a finite -/// set of size `n` is inversely proportional to a power of its frequency rank -/// (with exponent `s`). +/// The samples follow [Zipf's law](https://en.wikipedia.org/wiki/Zipf%27s_law): +/// The frequency of each sample from a finite set of size `n` is inversely +/// proportional to a power of its frequency rank (with exponent `s`). /// /// For large `n`, this converges to the [`Zeta`](crate::Zeta) distribution. /// diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index e7dab863f9..2c26626a17 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -15,17 +15,11 @@ use core::fmt; #[cfg(feature = "serde1")] use serde::{Deserialize, Serialize}; -/// The Bernoulli distribution `Bernoulli(p)`. -/// -/// # Parameters -/// -/// `p`: Probability of success. -/// -/// # Description +/// The [Bernoulli distribution](https://en.wikipedia.org/wiki/Bernoulli_distribution) `Bernoulli(p)`. /// -/// This is a special case of the Binomial distribution where `n = 1`, -/// e.g. a single trial with probability `p` of success and probability -/// `1 - p` of failure. +/// This distribution describes a single boolean random variable, which is true +/// with probability `p` and false with probability `1 - p`. +/// It is a special case of the Binomial distribution with `n = 1`. /// /// # Plot /// diff --git a/src/distributions/weighted_index.rs b/src/distributions/weighted_index.rs index ec3bbade05..c388828d0d 100644 --- a/src/distributions/weighted_index.rs +++ b/src/distributions/weighted_index.rs @@ -20,7 +20,7 @@ use core::fmt::Debug; #[cfg(feature = "serde1")] use serde::{Deserialize, Serialize}; -/// A distribution using weighted sampling of discrete items +/// A distribution using weighted sampling of discrete items. /// /// Sampling a `WeightedIndex` distribution returns the index of a randomly /// selected element from the iterator used when the `WeightedIndex` was From e105c59654acca395c8d89fe0b589f01d1af052d Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:26:47 +0200 Subject: [PATCH 24/29] Consistency --- rand_distr/src/cauchy.rs | 4 ++-- rand_distr/src/gamma.rs | 2 +- rand_distr/src/normal.rs | 4 ++-- rand_distr/src/normal_inverse_gaussian.rs | 4 ++-- rand_distr/src/pareto.rs | 4 ++-- rand_distr/src/pert.rs | 4 ++-- rand_distr/src/poisson.rs | 2 +- rand_distr/src/skew_normal.rs | 4 ++-- rand_distr/src/weibull.rs | 8 ++++---- rand_distr/src/zipf.rs | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 60f7bf2d68..03fee3c8fd 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -17,7 +17,7 @@ use rand::Rng; /// The [Cauchy distribution](https://en.wikipedia.org/wiki/Cauchy_distribution) `Cauchy(x₀, γ)`. /// /// The Cauchy distribution is a continuous probability distribution with -/// parameters `x₀` (`median`) and `γ` (`scale`). +/// parameters `x₀` (median) and `γ` (scale). /// It describes the distribution of the ratio of two independent /// normally distributed random variables with means `x₀` and scales `γ`. /// In other words, if `X` and `Y` are independent normally distributed @@ -34,7 +34,7 @@ use rand::Rng; /// Note how the median parameter `x₀` shifts the distribution along the x-axis, /// and how the scale `γ` changes the density around the median. /// -/// The `standard Cauchy distribution` is the special case with `x₀ = 0` and `γ = 1`, +/// The standard Cauchy distribution is the special case with `x₀ = 0` and `γ = 1`, /// which corresponds to the ratio of two [`StandardNormal`](crate::StandardNormal) distributions. /// /// ![Cauchy distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/cauchy.svg) diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 6f40f28c0a..8716ba685c 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -489,7 +489,7 @@ where /// The [Student t-distribution](https://en.wikipedia.org/wiki/Student%27s_t-distribution) `t(ν)`. /// /// The t-distribution is a continuous probability distribution -/// parameterized by `ν` (`nu`), the degrees of freedom, which +/// parameterized by degrees of freedom `ν` (`nu`), which /// arises when estimating the mean of a normally-distributed /// population in situations where the sample size is small and /// the population's standard deviation is unknown. diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index de045d11e3..d5f01ee993 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -103,8 +103,8 @@ impl Distribution for StandardNormal { /// The [Normal distribution](https://en.wikipedia.org/wiki/Normal_distribution) `N(μ, σ²)`. /// /// The Normal distribution, also known as the Gaussian distribution or -/// bell curve, is a continuous probability distribution with parameters -/// `μ` (`mu`, mean) and `σ` (`sigma`, standard deviation). +/// bell curve, is a continuous probability distribution with mean +/// `μ` (`mu`) and standard deviation `σ` (`sigma`). /// It is used to model continuous data that tend to cluster around a mean. /// The Normal distribution is symmetric and characterized by its bell-shaped curve. /// diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 95fb1a22c9..9b284edf62 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -30,8 +30,8 @@ impl std::error::Error for Error {} /// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)`. /// -/// This is a continuous probability distribution with two parameters, `alpha` and `beta`, -/// defined in `(-∞, ∞)`. +/// This is a continuous probability distribution with two parameters, +/// `α` (`alpha`) and `β` (`beta`), defined in `(-∞, ∞)`. /// It is also known as the normal-Wald distribution. /// /// # Plot diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index 8c2c9c6fa4..e0293cd010 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -16,12 +16,12 @@ use rand::Rng; /// The [Pareto distribution](https://en.wikipedia.org/wiki/Pareto_distribution) `Pareto(α, xₘ)`. /// /// The Pareto distribution is a continuous probability distribution with -/// parameters `scale` (`α`) and `shape` (`xₘ` or `k`). +/// scale parameter `α` and shape parameter `xₘ` ( or `k`). /// /// # Plot /// /// The following plot shows the Pareto distribution with various values of -/// `scale` and `shape`. +/// `α` and `xₘ`. /// Note how the scale parameter `α` corresponds to the height of the jump /// in density at `x = xₘ`, and to the rate of decay in the tail. /// diff --git a/rand_distr/src/pert.rs b/rand_distr/src/pert.rs index 535fee571f..df5361d704 100644 --- a/rand_distr/src/pert.rs +++ b/rand_distr/src/pert.rs @@ -21,8 +21,8 @@ use rand::Rng; /// /// # Plot /// -/// The following plot shows the PERT distribution with various values of -/// `min`, `max`, `mode`, and `shape`. +/// The following plot shows the PERT distribution with `min = -1`, `max = 1`, +/// and various values of `mode` and `shape`. /// /// ![PERT distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pert.svg) /// diff --git a/rand_distr/src/poisson.rs b/rand_distr/src/poisson.rs index c867be5ae4..c84d4dce35 100644 --- a/rand_distr/src/poisson.rs +++ b/rand_distr/src/poisson.rs @@ -17,7 +17,7 @@ use rand::Rng; /// The [Poisson distribution](https://en.wikipedia.org/wiki/Poisson_distribution) `Poisson(λ)`. /// /// The Poisson distribution is a discrete probability distribution with -/// rate parameter `λ` (lambda). It models the number of events occurring in a fixed +/// rate parameter `λ` (`lambda`). It models the number of events occurring in a fixed /// interval of time or space. /// /// This distribution has density function: diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index dfeb0f0eee..a030bb4479 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -17,8 +17,8 @@ use rand::Rng; /// /// The skew normal distribution is a generalization of the /// [`Normal`](crate::Normal) distribution to allow for non-zero skewness. -/// It has parameters `location` (`ξ`, zeta), `scale` (`ω`, omega), and -/// `shape` (`α`, alpha). +/// It has location parameter `ξ` (`zeta`), scale parameter `ω` (`omega`), +/// and shape parameter `α` (`alpha`). /// /// The `ξ` and `ω` parameters correspond to the mean `μ` and standard /// deviation `σ` of the normal distribution, respectively. diff --git a/rand_distr/src/weibull.rs b/rand_distr/src/weibull.rs index 0069b5d985..1b57393d57 100644 --- a/rand_distr/src/weibull.rs +++ b/rand_distr/src/weibull.rs @@ -14,10 +14,10 @@ use num_traits::Float; use rand::Rng; /// The [Weibull distribution](https://en.wikipedia.org/wiki/Weibull_distribution) `Weibull(λ, k)`. -/// -/// This is a family of continuous probability distributions with parameters -/// `scale` (`λ`, lambda) and `shape` (`k`). It is used to model reliability -/// data, life data, and accelerated life testing data. +/// +/// This is a family of continuous probability distributions with +/// scale parameter `λ` (`lambda`) and shape parameter `k`. It is used +/// to model reliability data, life data, and accelerated life testing data. /// /// # Plot /// diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index 48999551e5..f9c487a047 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -140,7 +140,7 @@ where /// /// For large `n`, this converges to the [`Zeta`](crate::Zeta) distribution. /// -/// For `s = 0`, this becomes a uniform distribution. +/// For `s = 0`, this becomes a [`uniform`](crate::Uniform) distribution. /// /// # Plot /// From 61656456c2bb4d33aa85c2029d0ac90973f9572e Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:27:50 +0200 Subject: [PATCH 25/29] fmt --- rand_distr/src/binomial.rs | 4 ++-- rand_distr/src/cauchy.rs | 8 ++++---- rand_distr/src/dirichlet.rs | 2 +- rand_distr/src/exponential.rs | 8 ++++---- rand_distr/src/frechet.rs | 6 +++--- rand_distr/src/gamma.rs | 8 ++++---- rand_distr/src/geometric.rs | 8 ++++---- rand_distr/src/gumbel.rs | 2 +- rand_distr/src/hypergeometric.rs | 4 ++-- rand_distr/src/normal.rs | 12 ++++++------ rand_distr/src/normal_inverse_gaussian.rs | 2 +- rand_distr/src/skew_normal.rs | 2 +- rand_distr/src/weibull.rs | 2 +- rand_distr/src/zipf.rs | 4 ++-- src/distributions/bernoulli.rs | 8 ++++---- 15 files changed, 40 insertions(+), 40 deletions(-) diff --git a/rand_distr/src/binomial.rs b/rand_distr/src/binomial.rs index a62646bbe8..514dbeca90 100644 --- a/rand_distr/src/binomial.rs +++ b/rand_distr/src/binomial.rs @@ -19,11 +19,11 @@ use rand::Rng; /// The [binomial distribution](https://en.wikipedia.org/wiki/Binomial_distribution) `Binomial(n, p)`. /// /// The binomial distribution is a discrete probability distribution -/// which describes the probability of seeing `k` successes in `n` +/// which describes the probability of seeing `k` successes in `n` /// independent trials, each of which has success probability `p`. /// /// # Density function -/// +/// /// `f(k) = n!/(k! (n-k)!) p^k (1-p)^(n-k)` for `k >= 0`. /// /// # Plot diff --git a/rand_distr/src/cauchy.rs b/rand_distr/src/cauchy.rs index 03fee3c8fd..6d4ff4ec18 100644 --- a/rand_distr/src/cauchy.rs +++ b/rand_distr/src/cauchy.rs @@ -23,9 +23,9 @@ use rand::Rng; /// In other words, if `X` and `Y` are independent normally distributed /// random variables with means `x₀` and scales `γ`, respectively, then /// `X / Y` is `Cauchy(x₀, γ)` distributed. -/// +/// /// # Density function -/// +/// /// `f(x) = 1 / (π * γ * (1 + ((x - x₀) / γ)²))` /// /// # Plot @@ -48,9 +48,9 @@ use rand::Rng; /// let v = cau.sample(&mut rand::thread_rng()); /// println!("{} is from a Cauchy(2, 5) distribution", v); /// ``` -/// +/// /// # Notes -/// +/// /// Note that at least for `f32`, results are not fully portable due to minor /// differences in the target system's *tan* implementation, `tanf`. #[derive(Clone, Copy, Debug, PartialEq)] diff --git a/rand_distr/src/dirichlet.rs b/rand_distr/src/dirichlet.rs index cd59764ac6..9605308432 100644 --- a/rand_distr/src/dirichlet.rs +++ b/rand_distr/src/dirichlet.rs @@ -189,7 +189,7 @@ where /// The [Dirichlet distribution](https://en.wikipedia.org/wiki/Dirichlet_distribution) `Dirichlet(α₁, α₂, ..., αₖ)`. /// /// The Dirichlet distribution is a family of continuous multivariate -/// probability distributions parameterized by a vector of positive +/// probability distributions parameterized by a vector of positive /// real numbers `α₁, α₂, ..., αₖ`, where `k` is the number of dimensions /// of the distribution. The distribution is supported on the `k-1`-dimensional /// simplex, which is the set of points `x = [x₁, x₂, ..., xₖ]` such that diff --git a/rand_distr/src/exponential.rs b/rand_distr/src/exponential.rs index 01d2dffb5e..4c919b2096 100644 --- a/rand_distr/src/exponential.rs +++ b/rand_distr/src/exponential.rs @@ -16,7 +16,7 @@ use num_traits::Float; use rand::Rng; /// The standard exponential distribution `Exp(1)`. -/// +/// /// This is equivalent to `Exp::new(1.0)` or sampling with /// `-rng.gen::().ln()`, but faster. /// @@ -29,7 +29,7 @@ use rand::Rng; /// ![Exponential distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/exponential_exp1.svg) /// /// # Example -/// +/// /// ``` /// use rand::prelude::*; /// use rand_distr::Exp1; @@ -37,7 +37,7 @@ use rand::Rng; /// let val: f64 = thread_rng().sample(Exp1); /// println!("{}", val); /// ``` -/// +/// /// # Notes /// /// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. The exact @@ -97,7 +97,7 @@ impl Distribution for Exp1 { /// # Density function /// /// `f(x) = λ * exp(-λ * x)` for `x > 0`, when `λ > 0`. -/// +/// /// For `λ = 0`, all samples yield infinity (because a Poisson process /// with rate 0 has no events). /// diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index b840fb1d00..45b95780e7 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -14,13 +14,13 @@ use num_traits::Float; use rand::Rng; /// The [Fréchet distribution](https://en.wikipedia.org/wiki/Fr%C3%A9chet_distribution) `Fréchet(α, μ, σ)`. -/// +/// /// The Fréchet distribution is a continuous probability distribution /// with shape parameter `α` (`alpha`), location parameter `μ` (`mu`), /// and scale parameter `σ` (`sigma`). It describes the distribution /// of the maximum (or minimum) of a number of random variables. /// It is also known as the Type II extreme value distribution. -/// +/// /// # Density function /// /// `f(x) = [(x - μ) / σ]^(-1 - α) exp[-(x - μ) / σ]^(-α) α / σ` @@ -35,7 +35,7 @@ use rand::Rng; /// ![Fréchet distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/frechet.svg) /// /// # Example -/// +/// /// ``` /// use rand::prelude::*; /// use rand_distr::Frechet; diff --git a/rand_distr/src/gamma.rs b/rand_distr/src/gamma.rs index 8716ba685c..23051e45d3 100644 --- a/rand_distr/src/gamma.rs +++ b/rand_distr/src/gamma.rs @@ -27,7 +27,7 @@ use serde::{Deserialize, Serialize}; /// The [Gamma distribution](https://en.wikipedia.org/wiki/Gamma_distribution) `Gamma(k, θ)`. /// /// The Gamma distribution is a continuous probability distribution -/// with shape parameter `k > 0` (number of events) and +/// with shape parameter `k > 0` (number of events) and /// scale parameter `θ > 0` (mean waiting time between events). /// It describes the time until `k` events occur in a Poisson /// process with rate `1/θ`. It is the generalization of the @@ -277,7 +277,7 @@ where } /// The [chi-squared distribution](https://en.wikipedia.org/wiki/Chi-squared_distribution) `χ²(k)`. -/// +/// /// The chi-squared distribution is a continuous probability /// distribution with parameter `k > 0` degrees of freedom. /// @@ -495,7 +495,7 @@ where /// the population's standard deviation is unknown. /// It is widely used in hypothesis testing. /// -/// For `ν = 1`, this is equivalent to the standard +/// For `ν = 1`, this is equivalent to the standard /// [`Cauchy`](crate::Cauchy) distribution, /// and as `ν` diverges to infinity, `t(ν)` converges to /// [`StandardNormal`](crate::StandardNormal). @@ -597,7 +597,7 @@ struct BC { /// defined on the interval `[0, 1]`. It is the conjugate prior for the /// parameter `p` of the [`Binomial`][crate::Binomial] distribution. /// -/// It has two shape parameters `α` (alpha) and `β` (beta) which control +/// It has two shape parameters `α` (alpha) and `β` (beta) which control /// the shape of the distribution. Both `a` and `β` must be greater than zero. /// The distribution is symmetric when `α = β`. /// diff --git a/rand_distr/src/geometric.rs b/rand_distr/src/geometric.rs index b96b7db585..e54496d8e5 100644 --- a/rand_distr/src/geometric.rs +++ b/rand_distr/src/geometric.rs @@ -17,13 +17,13 @@ use rand::Rng; /// /// See [`StandardGeometric`](crate::StandardGeometric) for an optimised /// implementation for `p = 0.5`. -/// +/// /// # Density function -/// +/// /// `f(k) = (1 - p)^k p` for `k >= 0`. /// /// # Plot -/// +/// /// The following plot illustrates the geometric distribution for various /// values of `p`. Note how higher `p` values shift the distribution to /// the left, and the mean of the distribution is `1/p`. @@ -152,7 +152,7 @@ impl Distribution for Geometric { } /// The standard geometric distribution `Geometric(0.5)`. -/// +/// /// This is equivalent to `Geometric::new(0.5)`, but faster. /// /// See [`Geometric`](crate::Geometric) for the general geometric distribution. diff --git a/rand_distr/src/gumbel.rs b/rand_distr/src/gumbel.rs index b15c09c103..fd9324acf2 100644 --- a/rand_distr/src/gumbel.rs +++ b/rand_distr/src/gumbel.rs @@ -19,7 +19,7 @@ use rand::Rng; /// with location parameter `μ` (`mu`) and scale parameter `β` (`beta`). /// It is used to model the distribution of the maximum (or minimum) /// of a number of samples of various distributions. -/// +/// /// # Density function /// /// `f(x) = exp(-(z + exp(-z))) / β`, where `z = (x - μ) / β`. diff --git a/rand_distr/src/hypergeometric.rs b/rand_distr/src/hypergeometric.rs index 01d3c27be9..c15b143b62 100644 --- a/rand_distr/src/hypergeometric.rs +++ b/rand_distr/src/hypergeometric.rs @@ -35,9 +35,9 @@ enum SamplingMethod { /// See the [binomial distribution](crate::Binomial) for the analogous distribution /// for sampling with replacement. It is a good approximation when the population /// size is much larger than the sample size. -/// +/// /// # Density function -/// +/// /// `f(k) = binomial(K, k) * binomial(N-K, n-k) / binomial(N, n)`, /// where `binomial(a, b) = a! / (b! * (a - b)!)`. /// diff --git a/rand_distr/src/normal.rs b/rand_distr/src/normal.rs index d5f01ee993..1b698ec4bb 100644 --- a/rand_distr/src/normal.rs +++ b/rand_distr/src/normal.rs @@ -16,7 +16,7 @@ use num_traits::Float; use rand::Rng; /// The standard Normal distribution `N(0, 1)`. -/// +/// /// This is equivalent to `Normal::new(0.0, 1.0)`, but faster. /// /// See [`Normal`](crate::Normal) for the general Normal distribution. @@ -39,7 +39,7 @@ use rand::Rng; /// # Notes /// /// Implemented via the ZIGNOR variant[^1] of the Ziggurat method. -/// +/// /// [^1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to /// Generate Normal Random Samples*]( /// https://www.doornik.com/research/ziggurat.pdf). @@ -101,7 +101,7 @@ impl Distribution for StandardNormal { } /// The [Normal distribution](https://en.wikipedia.org/wiki/Normal_distribution) `N(μ, σ²)`. -/// +/// /// The Normal distribution, also known as the Gaussian distribution or /// bell curve, is a continuous probability distribution with mean /// `μ` (`mu`) and standard deviation `σ` (`sigma`). @@ -110,9 +110,9 @@ impl Distribution for StandardNormal { /// /// See [`StandardNormal`](crate::StandardNormal) for an /// optimised implementation for `μ = 0` and `σ = 1`. -/// +/// /// # Density function -/// +/// /// `f(x) = (1 / sqrt(2π σ²)) * exp(-((x - μ)² / (2σ²)))` /// /// # Plot @@ -247,7 +247,7 @@ where } /// The [log-normal distribution](https://en.wikipedia.org/wiki/Log-normal_distribution) `ln N(μ, σ²)`. -/// +/// /// This is the distribution of the random variable `X = exp(Y)` where `Y` is /// normally distributed with mean `μ` and variance `σ²`. In other words, if /// `X` is log-normal distributed, then `ln(X)` is `N(μ, σ²)` distributed. diff --git a/rand_distr/src/normal_inverse_gaussian.rs b/rand_distr/src/normal_inverse_gaussian.rs index 9b284edf62..f8f62170f5 100644 --- a/rand_distr/src/normal_inverse_gaussian.rs +++ b/rand_distr/src/normal_inverse_gaussian.rs @@ -30,7 +30,7 @@ impl std::error::Error for Error {} /// The [normal-inverse Gaussian distribution](https://en.wikipedia.org/wiki/Normal-inverse_Gaussian_distribution) `NIG(α, β)`. /// -/// This is a continuous probability distribution with two parameters, +/// This is a continuous probability distribution with two parameters, /// `α` (`alpha`) and `β` (`beta`), defined in `(-∞, ∞)`. /// It is also known as the normal-Wald distribution. /// diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index a030bb4479..80e5cd3292 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -23,7 +23,7 @@ use rand::Rng; /// The `ξ` and `ω` parameters correspond to the mean `μ` and standard /// deviation `σ` of the normal distribution, respectively. /// The `α` parameter controls the skewness. -/// +/// /// # Density function /// /// It has the density function, for `scale > 0`, diff --git a/rand_distr/src/weibull.rs b/rand_distr/src/weibull.rs index 1b57393d57..e6f80736a4 100644 --- a/rand_distr/src/weibull.rs +++ b/rand_distr/src/weibull.rs @@ -15,7 +15,7 @@ use rand::Rng; /// The [Weibull distribution](https://en.wikipedia.org/wiki/Weibull_distribution) `Weibull(λ, k)`. /// -/// This is a family of continuous probability distributions with +/// This is a family of continuous probability distributions with /// scale parameter `λ` (`lambda`) and shape parameter `k`. It is used /// to model reliability data, life data, and accelerated life testing data. /// diff --git a/rand_distr/src/zipf.rs b/rand_distr/src/zipf.rs index f9c487a047..6616412810 100644 --- a/rand_distr/src/zipf.rs +++ b/rand_distr/src/zipf.rs @@ -21,7 +21,7 @@ use rand::{distributions::OpenClosed01, Rng}; /// It is also known as the discrete Pareto, Riemann-Zeta, Zipf, or Zipf–Estoup distribution. /// /// # Density function -/// +/// /// `f(k) = k^(-a) / ζ(a)` for `k >= 1`, where `ζ` is the /// [Riemann zeta function](https://en.wikipedia.org/wiki/Riemann_zeta_function). /// @@ -50,7 +50,7 @@ use rand::{distributions::OpenClosed01, Rng}; /// /// # Implementation details /// -/// We are using the algorithm from +/// We are using the algorithm from /// [Non-Uniform Random Variate Generation](https://doi.org/10.1007/978-1-4613-8643-8), /// Section 6.1, page 551. #[derive(Clone, Copy, Debug, PartialEq)] diff --git a/src/distributions/bernoulli.rs b/src/distributions/bernoulli.rs index 2c26626a17..8045349673 100644 --- a/src/distributions/bernoulli.rs +++ b/src/distributions/bernoulli.rs @@ -18,14 +18,14 @@ use serde::{Deserialize, Serialize}; /// The [Bernoulli distribution](https://en.wikipedia.org/wiki/Bernoulli_distribution) `Bernoulli(p)`. /// /// This distribution describes a single boolean random variable, which is true -/// with probability `p` and false with probability `1 - p`. +/// with probability `p` and false with probability `1 - p`. /// It is a special case of the Binomial distribution with `n = 1`. -/// +/// /// # Plot -/// +/// /// The following plot shows the Bernoulli distribution with `p = 0.1`, /// `p = 0.5`, and `p = 0.9`. -/// +/// /// ![Bernoulli distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/bernoulli.svg) /// /// # Example From b1f525260c887b58b0777cf9721b21801f5dcde8 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:41:53 +0200 Subject: [PATCH 26/29] Change order of Frechet parameters --- rand_distr/src/frechet.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rand_distr/src/frechet.rs b/rand_distr/src/frechet.rs index 45b95780e7..b274946d66 100644 --- a/rand_distr/src/frechet.rs +++ b/rand_distr/src/frechet.rs @@ -6,7 +6,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Fréchet distribution `Fréchet(α, μ, σ)`. +//! The Fréchet distribution `Fréchet(μ, σ, α)`. use crate::{Distribution, OpenClosed01}; use core::fmt; @@ -16,8 +16,8 @@ use rand::Rng; /// The [Fréchet distribution](https://en.wikipedia.org/wiki/Fr%C3%A9chet_distribution) `Fréchet(α, μ, σ)`. /// /// The Fréchet distribution is a continuous probability distribution -/// with shape parameter `α` (`alpha`), location parameter `μ` (`mu`), -/// and scale parameter `σ` (`sigma`). It describes the distribution +/// with location parameter `μ` (`mu`), scale parameter `σ` (`sigma`), +/// and shape parameter `α` (`alpha`). It describes the distribution /// of the maximum (or minimum) of a number of random variables. /// It is also known as the Type II extreme value distribution. /// From 00503f41193aee8f25b33593ec143d93d16c85b5 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:47:25 +0200 Subject: [PATCH 27/29] Fix Pareto parameters --- rand_distr/src/pareto.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rand_distr/src/pareto.rs b/rand_distr/src/pareto.rs index e0293cd010..ba0465f7e6 100644 --- a/rand_distr/src/pareto.rs +++ b/rand_distr/src/pareto.rs @@ -6,23 +6,23 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! The Pareto distribution `Pareto(α, xₘ)`. +//! The Pareto distribution `Pareto(xₘ, α)`. use crate::{Distribution, OpenClosed01}; use core::fmt; use num_traits::Float; use rand::Rng; -/// The [Pareto distribution](https://en.wikipedia.org/wiki/Pareto_distribution) `Pareto(α, xₘ)`. +/// The [Pareto distribution](https://en.wikipedia.org/wiki/Pareto_distribution) `Pareto(xₘ, α)`. /// /// The Pareto distribution is a continuous probability distribution with -/// scale parameter `α` and shape parameter `xₘ` ( or `k`). +/// scale parameter `xₘ` ( or `k`) and shape parameter `α`. /// /// # Plot /// /// The following plot shows the Pareto distribution with various values of -/// `α` and `xₘ`. -/// Note how the scale parameter `α` corresponds to the height of the jump +/// `xₘ` and `α`. +/// Note how the shape parameter `α` corresponds to the height of the jump /// in density at `x = xₘ`, and to the rate of decay in the tail. /// /// ![Pareto distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/pareto.svg) From 44280239cfcda7fb3dd30643b77fb05fe1c725be Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 13:50:00 +0200 Subject: [PATCH 28/29] =?UTF-8?q?Fix=20=CE=BE=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rand_distr/src/skew_normal.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 80e5cd3292..8d296ca3d1 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -17,7 +17,7 @@ use rand::Rng; /// /// The skew normal distribution is a generalization of the /// [`Normal`](crate::Normal) distribution to allow for non-zero skewness. -/// It has location parameter `ξ` (`zeta`), scale parameter `ω` (`omega`), +/// It has location parameter `ξ` (`xi`), scale parameter `ω` (`omega`), /// and shape parameter `α` (`alpha`). /// /// The `ξ` and `ω` parameters correspond to the mean `μ` and standard From 4a880b82edb2003c8e1cd16415d95e7ac1e2cd79 Mon Sep 17 00:00:00 2001 From: Michael Dyer Date: Mon, 8 Jul 2024 15:25:09 +0200 Subject: [PATCH 29/29] Add skew normal wikipedia link --- rand_distr/src/skew_normal.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rand_distr/src/skew_normal.rs b/rand_distr/src/skew_normal.rs index 8d296ca3d1..6ef521be25 100644 --- a/rand_distr/src/skew_normal.rs +++ b/rand_distr/src/skew_normal.rs @@ -13,7 +13,7 @@ use core::fmt; use num_traits::Float; use rand::Rng; -/// The [skew normal distribution] `SN(ξ, ω, α)`. +/// The [skew normal distribution](https://en.wikipedia.org/wiki/Skew_normal_distribution) `SN(ξ, ω, α)`. /// /// The skew normal distribution is a generalization of the /// [`Normal`](crate::Normal) distribution to allow for non-zero skewness.