From nobody Mon Dec 15 14:42:51 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dVN8C73t8z6KpyL for ; Mon, 15 Dec 2025 14:42:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dVN8C3r22z3RLC for ; Mon, 15 Dec 2025 14:42:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765809771; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2ZhpSEnAFpEJjLEU7i86heC0JLdEUZsF67Szvpqobg=; b=K11O+VF9JSpMBziVkBmTRBWjLDB92/ph+UDAsGa5aZ4u+Wfsk2vNKZSlxBO6+UBxBkzb20 tB44k25OLuJ9hfnq9aKGkHVUXCu6ovnV9pkQF8g/n5w9wZYqN+9d4nS3T1gvKshlE+Aabe Zg72WcCb3r8xbmM+k129LLV8AIDbDFUbIsKPOHWAG/7Iyaze8p+xVJlej8lz3/EwyTyelW xcCsWWJgE0yhZMw+jm6yVpKYzcYlovTEbigBgt4dl6obmdfRoqMj8exJeObeXGpt9cVj2i MOEfZElToyI9ysd7PAxIAEg7L90Xymm2stHfrEfBUgtnRDc2kOehHlUYUU6ZeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765809771; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2ZhpSEnAFpEJjLEU7i86heC0JLdEUZsF67Szvpqobg=; b=kpBD+qGqHpXrCJ7Ycmp3LPH0YPj8VGCGBk19JniHyTgD+94F8Y4kxT+nNSriuj33o/iQC7 tpdjyZY/oD4drfeMmKu/OSsqNyZaLWslSmOvZU089u2AGHpfwNGb9ACucEm1Y1BsPr8Xs9 5zYKWFSNYXUEXRWe9l0F1F8fz9ffr3j3o9SnOyZ2mBS29ZnoR7uCSyUcptbXZ8hHzEdLXo pGNB4X/nGznEC01wdKRNcQTK1bkmAoZwl6aZmBA7HiiD567tx7EIh0P0AtycGk10FfrnHF vQCgGCadZRTVNFUwDoZwpUdjhFsq1HZyDVJ3ZL9Xawau5Vk7jEVzp3jPOjwI9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1765809771; a=rsa-sha256; cv=none; b=Fz8FjVTkzbSKRKgZowLVv9lAkhIJDPkwVE1BtDdHWByty0PrK6rZNNtJlJBgsrF2HM3a5E UUOpyKyDehUMiaHNkveY64HV5dP3fuCLB8ufI1XLWvaLTULUrXPy+ttACEQMHha9spzhBa QKlbltIOAb7B4cjfB02uOmAYXh+KVEF7zbptk0oG33+51Sv5gp/kkDIfs45JK1lOlUT61t 3XAti12Pg/J8tIZn/sArUgG741xuhijdghtrSUfIGO/qwqpIh/pKEH2NlYKdzefgaL1QMK CpLlv93x44gqkV0t+J0ozXms+8Wom/4SQmsVtCGxpG4XBaJTCLr3JjiunvqrVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dVN8C3N84z8D4 for ; Mon, 15 Dec 2025 14:42:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38a88 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 15 Dec 2025 14:42:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: e69c36339eba - stable/15 - ministat: Clean up usage message, manual page, and chameleon List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e69c36339ebafc8b9b95fbf31ea22b7fded391e8 Auto-Submitted: auto-generated Date: Mon, 15 Dec 2025 14:42:51 +0000 Message-Id: <69401e6b.38a88.59779de7@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=e69c36339ebafc8b9b95fbf31ea22b7fded391e8 commit e69c36339ebafc8b9b95fbf31ea22b7fded391e8 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2025-11-12 15:06:06 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2025-12-15 14:42:47 +0000 ministat: Clean up usage message, manual page, and chameleon In the manual page: - Fix synopsis and use better argument names - Improve description of flags. - In EXAMPLES, list the contents of iguana and chameleon files. - Use Rs to reference The Cartoon Guide to Statistics - Fix misc indentation and style issues - Tag SPDX MFC after: 1 week Reviewed by: bcr, ziaee Differential Revision: https://reviews.freebsd.org/D53710 (cherry picked from commit 9d17b61b2fd254b418f3dd6b7a64afbc861a57f8) --- usr.bin/ministat/chameleon | 2 +- usr.bin/ministat/ministat.1 | 146 +++++++++++++++++++++++++++++--------------- usr.bin/ministat/ministat.c | 2 +- 3 files changed, 98 insertions(+), 52 deletions(-) diff --git a/usr.bin/ministat/chameleon b/usr.bin/ministat/chameleon index ed1bfdbc4773..dfb1923c000f 100644 --- a/usr.bin/ministat/chameleon +++ b/usr.bin/ministat/chameleon @@ -1,5 +1,5 @@ 150 400 -720 +720 500 930 diff --git a/usr.bin/ministat/ministat.1 b/usr.bin/ministat/ministat.1 index cef7caa7b9d9..437fd66a1ddc 100644 --- a/usr.bin/ministat/ministat.1 +++ b/usr.bin/ministat/ministat.1 @@ -1,6 +1,7 @@ .\" -.\" Copyright (c) 2007 Poul-Henning Kamp -.\" All rights reserved. +.\" Copyright (c) 2007 Poul-Henning Kamp. All rights reserved. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 10, 2012 +.Dd November 13, 2025 .Dt MINISTAT 1 .Os .Sh NAME @@ -33,9 +34,9 @@ .Nm .Op Fl Anqs .Op Fl C Ar column -.Op Fl c Ar confidence_level -.Op Fl d Ar delimiter -.Op Fl w Op width +.Op Fl c Ar confidence +.Op Fl d Ar delimiters +.Op Fl w Ar width .Op Ar .Sh DESCRIPTION The @@ -44,10 +45,26 @@ command calculates fundamental statistical properties of numeric data in the specified files or, if no file is specified, standard input. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width "-c confidence" .It Fl A Just report the statistics of the input and relative comparisons, suppress the ASCII-art plot. +.It Fl C Ar column +Specify which column of data to use. +By default the first column in the input file(s) is used. +.It Fl c Ar confidence +Specify desired confidence level for Student's T analysis. +Possible percent values are +.Cm 80 , 90 , 95 , 98 , 99 , +and +.Cm 99.5 . +.It Fl d Ar delimiters +Specify the column delimiter characters, default is +.Ql \ \et +.Pq i.e., a space and a tab . +See +.Xr strtok 3 +for details. .It Fl n Just report the raw statistics of the input, suppress the ASCII-art plot and the relative comparisons. @@ -58,75 +75,104 @@ alongside .It Fl s Print the average/median/stddev bars on separate lines in the ASCII-art plot, to avoid overlap. -.It Fl C Ar column -Specify which column of data to use. -By default the first column in the input file(s) are used. -.It Fl c Ar confidence_level -Specify desired confidence level for Student's T analysis. -Possible values are 80, 90, 95, 98, 99 and 99.5 % -.It Fl d Ar delimiter -Specifies the column delimiter characters, default is SPACE and TAB. -See -.Xr strtok 3 -for details. .It Fl w Ar width -Width of ASCII-art plot in characters. +Set the width of the ASCII-art plot in characters. The default is the terminal width, or 74 if standard output is not a terminal. .El .Pp +.Nm +accepts up to seven input files. +.Pp +Each dataset must contain at least three values. +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Let's consider two input files. +The first one will be +.Dq iguana : +.Bd -literal -offset indent +50 +200 +150 +400 +750 +400 +150 +.Ed +.Pp +The second one will be +.Dq chameleon : +.Bd -literal -offset indent +150 +400 +720 +500 +930 +.Ed +.Pp A sample output could look like this: .Bd -literal -offset indent - $ ministat -s -w 60 iguana chameleon - x iguana - + chameleon - +------------------------------------------------------------+ - |x * x * + + x +| - | |________M______A_______________| | - | |________________M__A___________________| | - +------------------------------------------------------------+ - N Min Max Median Avg Stddev - x 7 50 750 200 300 238.04761 - + 5 150 930 500 540 299.08193 - No difference proven at 95.0% confidence +$ ministat -s -w 60 iguana chameleon +x iguana ++ chameleon ++------------------------------------------------------------+ +|x * x * + + x +| +| |________M______A_______________| | +| |________________M__A___________________| | ++------------------------------------------------------------+ + N Min Max Median Avg Stddev +x 7 50 750 200 300 238.04761 ++ 5 150 930 500 540 299.08193 +No difference proven at 95.0% confidence .Ed .Pp If .Nm tells you, as in the example above, that there is no difference -proven at 95% confidence, the two data sets you gave it are for +proven at 95% confidence, the two datasets you gave it are for all statistical purposes identical. .Pp You have the option of lowering your standards by specifying a lower confidence level: .Bd -literal -offset indent - $ ministat -s -w 60 -c 80 iguana chameleon - x iguana - + chameleon - +------------------------------------------------------------+ - |x * x * + + x +| - | |________M______A_______________| | - | |________________M__A___________________| | - +------------------------------------------------------------+ - N Min Max Median Avg Stddev - x 7 50 750 200 300 238.04761 - + 5 150 930 500 540 299.08193 - Difference at 80.0% confidence - 240 +/- 212.215 - 80% +/- 70.7384% - (Student's t, pooled s = 264.159) +$ ministat -s -w 60 -c 80 iguana chameleon +x iguana ++ chameleon ++------------------------------------------------------------+ +|x * x * + + x +| +| |________M______A_______________| | +| |________________M__A___________________| | ++------------------------------------------------------------+ + N Min Max Median Avg Stddev +x 7 50 750 200 300 238.04761 ++ 5 150 930 500 540 299.08193 +Difference at 80.0% confidence + 240 +/- 212.215 + 80% +/- 70.7384% + (Student's t, pooled s = 264.159) .Ed .Pp But a lower standard does not make your data any better, and the example is only included here to show the format of the output when a statistical difference is proven according to Student's T method. .Sh SEE ALSO -Any mathematics text on basic statistics, for instances Larry Gonicks -excellent "Cartoon Guide to Statistics" which supplied the above example. +Any mathematics text on basic statistics, for instance the following book, +which supplied the above example: +.Rs +.%A Larry Gonick +.%A Woollcott Smith +.%B The Cartoon Guide to Statistics +.%D 1993 +.%I HarperPerennial +.%O ISBN 0-06-273102-5 +.Re .Sh HISTORY The .Nm -command was written by Poul-Henning Kamp out of frustration +command was written by +.An Poul-Henning Kamp +out of frustration over all the bogus benchmark claims made by people with no understanding of the importance of uncertainty and statistics. .Pp diff --git a/usr.bin/ministat/ministat.c b/usr.bin/ministat/ministat.c index 6967841a339f..7d3232370121 100644 --- a/usr.bin/ministat/ministat.c +++ b/usr.bin/ministat/ministat.c @@ -530,7 +530,7 @@ usage(char const *whine) fprintf(stderr, "%s\n", whine); fprintf(stderr, - "Usage: ministat [-C column] [-c confidence] [-d delimiter(s)] [-Anqs] [-w width] [file [file ...]]\n"); + "Usage: ministat [-Anqs] [-C column] [-c confidence] [-d delimiter(s)] [-w width] [file ...]]\n"); fprintf(stderr, "\tconfidence = {"); for (i = 0; i < NCONF; i++) { fprintf(stderr, "%s%g%%",