Repository navigation
v2.20.0
The statistical library is complete. Every distribution Excel offers, both of
its tails, its inverse, and the four hypothesis tests now evaluate in pure Dart,
so the README no longer has to point at registerFunction for anything
statistical. Trigonometry and combinatorics landed in the same pass: the engine
had no SIN at all before this.
New
- Distributions, with both tails and an inverse for each:
NORM.DIST,
NORM.INV,NORM.S.DIST,NORM.S.INV,GAUSS,PHI,LOGNORM.DIST,
LOGNORM.INV,BINOM.DIST,BINOM.DIST.RANGE,BINOM.INV,
NEGBINOM.DIST,HYPGEOM.DIST,POISSON.DIST,EXPON.DIST,
WEIBULL.DIST,GAMMA,GAMMALN,GAMMALN.PRECISE,GAMMA.DIST,
GAMMA.INV,BETA.DIST,BETA.INV,CHISQ.DIST,CHISQ.DIST.RT,
CHISQ.INV,CHISQ.INV.RT,T.DIST,T.DIST.RT,T.DIST.2T,T.INV,
T.INV.2T,F.DIST,F.DIST.RT,F.INVandF.INV.RT. - Hypothesis tests and intervals:
Z.TEST,T.TEST(paired, equal
variance, and Welch),F.TEST,CHISQ.TEST,CONFIDENCE.NORMand
CONFIDENCE.T. - Descriptive statistics:
AVEDEV,DEVSQ,GEOMEAN,HARMEAN,
TRIMMEAN,SKEW,SKEW.PandKURT. - Regression and correlation:
SLOPE,INTERCEPT,RSQ,STEYX,
FORECAST,FORECAST.LINEAR,COVAR,COVARIANCE.P,COVARIANCE.S,
PEARSON,STANDARDIZE,FISHERandFISHERINV. - Rank and percentile:
RANK.AVG,PERCENTILE.EXC,QUARTILE.EXC,
PERCENTRANK,PERCENTRANK.INCandPERCENTRANK.EXC. - The text-counting variants, which read text as zero and a boolean as one
or zero where their plain counterparts skip both:AVERAGEA,MAXA,MINA,
STDEVA,STDEVPA,VARAandVARPA. - Trigonometry, none of which existed before:
SIN,COS,TAN,ASIN,
ACOS,ATAN,ATAN2,SEC,CSC,COT,SINH,COSH,TANH,
ASINH,ACOSH,ATANH,SECH,CSCH,COTH,DEGREESandRADIANS. - Combinatorics and integer arithmetic:
FACT,FACTDOUBLE,COMBIN,
COMBINA,PERMUT,PERMUTATIONA,MULTINOMIAL,GCD,LCM,QUOTIENT,
SUMSQ,SQRTPI,EVEN,ODD,RANDandRANDBETWEEN. - Engineering additions:
ERF,ERF.PRECISE,ERFC,ERFC.PRECISE,
DELTAandGESTEP. - The pre-2010 spellings, so a workbook written by an older Excel evaluates
unchanged:NORMDIST,NORMINV,NORMSDIST,NORMSINV,LOGNORMDIST,
LOGINV,BINOMDIST,CRITBINOM,NEGBINOMDIST,HYPGEOMDIST,POISSON,
EXPONDIST,WEIBULL,GAMMADIST,GAMMAINV,BETADIST,BETAINV,
CHIDIST,CHIINV,TDIST,TINV,FDIST,FINV,ZTEST,TTEST,
FTEST,CHITESTandCONFIDENCE.
That takes the engine from 167 function names to 314.
Notes
Every distribution is built on one set of shared numerics (a Lanczos log gamma,
the incomplete gamma series and continued fraction, the incomplete beta
continued fraction, and a single inverse solver), so an inverse can never
disagree with its own forward function. The suite checks that directly: each
*.INV is run against its own *.DIST, each pair of tails is checked to add to
one, and each discrete cumulative form is checked against the running total of
its own mass function.
ATAN2 takes its x before its y, matching Excel rather than most maths
libraries. A unary minus still binds tighter than ^, so -2^2 is 4, also as
in Excel.
The formula engine remains opt-in: none of this is built or touched unless you
call evaluate or recalculate, so plain reading and writing pays nothing for
it.
Array-returning statistics (FREQUENCY, MODE.MULT, LINEST, LOGEST,
TREND, GROWTH) are still out. They need a formula to spill a computed block
rather than read a range from the sheet, which is a separate piece of work.