pspp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: build break on compute-dialog.c with VPATH build


From: Ben Pfaff
Subject: Re: build break on compute-dialog.c with VPATH build
Date: Sun, 15 Apr 2007 23:42:11 -0600
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

John Darrington <address@hidden> writes:

> On Sun, Apr 15, 2007 at 09:08:02PM -0600, Ben Pfaff wrote:
>      > I notice that later versions of the spss gui allow the user to filter
>      > the list of functions according to their class (eg Trig, Date/Time
>      > etc.)  Maybe we could add a field to struct operation which contains
>      > the class?   I guess this can wait until later 'tho.
>      
>      This is pretty easy if you don't need to get the functions in
>      order sorted by category.  If that's OK I can add a category
>      field pretty easily.

So I thought about categories a little, and it seems to me that
we want something like this, which also indicates my proposed
syntax for operation.def.  The first word after "category" is a
name for identifiers (which will probably go into an enum), the
quoted string is a name for the category, and the parenthesized
list gives the functions in the category (and accepts wildcards):

    category math "Mathematics" (
      ABS, EXP, LG10, LN, LNGAMMA, MOD10, RND, SQRT, TRUNC, MOD);
    category trig "Trigonometry" (
      COS, ASIN, ATAN, ARCOS, ARSIN, ARTAN, COS, SIN, TAN);
    category missing "Missing Values" (NMISS, NVALID, MISSING, SYSMIS, VALUE);
    category set "Set Membership" (ANY, RANGE);
    category stat "Statistics" (CFVAR, MAX, MEAN, MIN, MAX, SD, SUM, VARIANCE);
    category string "Strings" (
      CONCAT, INDEX, RINDEX, LENGTH, LOWER, MBLEN.BYTE, UPCASE, LPAD, RPAD, 
LTRIM,
      RTRIM, NUMBER, STRING, SUBSTR);
    category time "Time Construction" (TIME.*);
    category ctime "Time Conversion" (CTIME.*);
    category date "Date Construction" (DATE.*);
    category xdate "Date Extraction" (XDATE.*);
    category datemath "Date Arithmetic" (DATESUM DATEDIFF);
    category misc "Miscellaneous" (LAG, YRMODA, VALUELABEL);

    category pdf "Statistical Functions: Probability Density" (PDF.*);
    category cdf "Statistical Functions: Cumulative Distribution" (CDF.*);
    category idf "Statistical Functions: Inverse Distribution" (IDF.*);
    category rv "Statistical Functions: Random Variates" (RV.*);
    category ncdf "Statistical Functions: Noncentral Cumulative Distribution" 
(NCDF.*);
    category npdf "Statistical Functions: Noncentral Probability Density" 
(NCDF.*);
    category sig "Statistical Functions: Significance" (SIG.*);

    category beta "Distribution: Beta" (*.BETA);
    category bvnor "Distribution: Bivariate Normal" (*.BVNOR);
    category cauchy "Distribution: Cauchy" (*.CAUCHY);
    category chisq "Distribution: Chi-Square" (*.CHISQ);
    category exp "Distribution: Exponential" (*.EXP);
    category xpower "Distribution: Exponential Power" (*.XPOWER);
    category f "Distribution: F" (*.F);
    category gamma "Distribution: Gamma" (*.GAMMA);
    category halfnrm "Distribution: Half-Normal" (*.HALFNRM);
    category iguass "Distribution: Inverse Gaussian" (*.IGAUSS);
    category landau "Distribution: Landau" (*.LANDAU);
    category laplace "Distribution: Levy Alpha-Stable" (*.LEVY);
    category lvskew "Distribution: Levy Skew Alpha-Stable" (*.LVSKEW);
    category logistic "Distribution: Logistic" (*.LOGISTIC);
    category lnormal "Distribution: Lognormal" (*.LOGNORMAL);
    category normal "Distribution: Normal" (*.NORMAL);
    category ntail "Distribution: Normal Tail" (*.NTAIL);
    category pareto "Distribution: Pareto" (*.PARETO);
    category rayleigh "Distribution: Rayleigh" (*.RAYLEIGH);
    category smod "Distribution: Studentized Maximum Modulus" (*.SMOD);
    category srange "Distribution: Studentized Range" (*.SRANGE);
    category t "Distribution: Student T" (*.T);
    category t1g "Distribution: Type-1 Gumbel" (*.T1G);
    category t2g "Distribution: Type-2 Gumbel" (*.T2G);
    category uniform "Distribution: Uniform" (*.UNIFORM);
    category weibull "Distribution: Weibull" (*.WEIBULL);
    category bernoulli "Distribution: Bernoulli" (*.BERNOULLI);
    category binom "Distribution: Binomial" (*.BINOM);
    category geom "Distribution: Geometric" (*.GEOM);
    category hyper "Distribution: Hypergeometric" (*.HYPER);
    category log "Distribution: Logarithmic" (*.LOG);
    category negbin "Distribution: Negative Binomial" (*.NEGBIN);
    category poisson "Distribution: Poisson" (*.POISSON);

The only real difference is that we break down the statistical
functions into subcategories, and do so along two axes: by the
type of statistical function and by the distribution.  The list
of categories could either be hierarchical with a colon in the
category name indicating the hierarchy, or it could just be a
flat list with any category name that contains a colon sorted
after any name that doesn't, seeing as the most common functions
will probably not be those in subcategories.

I haven't implemented this, just started thinking over
categories.  If you like it, I could implement it.  (The
expressions part, I mean; not the GUI part.)
-- 
"Unix... is not so much a product
 as it is a painstakingly compiled oral history
 of the hacker subculture."
--Neal Stephenson




reply via email to

[Prev in Thread] Current Thread [Next in Thread]