File: vartable.h

package info (click to toggle)
ggobi 2.1.9~20091212-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 19,340 kB
  • ctags: 5,083
  • sloc: ansic: 57,242; xml: 30,604; cpp: 833; makefile: 355; java: 225; perl: 201; sh: 122; python: 23
file content (90 lines) | stat: -rw-r--r-- 2,228 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*-- vartable.h --*/

#ifndef VARTABLE_H
#define VARTABLE_H

#include "types.h"

enum { 
  VT_VARNAME, VT_TFORM,
  VT_REAL_USER_MIN, VT_REAL_USER_MAX,
  VT_REAL_DATA_MIN, VT_REAL_DATA_MAX,
  VT_MEAN, VT_MEDIAN,
  VT_NLEVELS, VT_LEVEL_NAME, VT_LEVEL_VALUE, VT_LEVEL_COUNT,
  VT_CAT_USER_MIN, VT_CAT_USER_MAX,
  VT_CAT_DATA_MIN, VT_CAT_DATA_MAX,
  VT_NMISSING,
  NCOLS_VT
};

typedef enum {ADDVAR_ROWNOS = 0, ADDVAR_BGROUP} NewVariableType; 

extern const double AddVarRowNumbers;
extern const double AddVarBrushGroup;

typedef enum {real, categorical, integer, counter, uniform, all_vartypes} vartyped;

/*
 * A vartabled object is not a table, but rather an entry in a table:
 * it's all the data for a single variable, and it is used to populate
 * a row in the variable manipulation table.  Now that is done using a
 * GtkTreeModel, so be careful before adding or moving an element in
 * this structure.
*/
typedef struct {
 GObject *d;  /*-- the parent datad --*/

 gchar *collab, *collab_tform;
 gchar *nickname;   /*-- very short name to use in tour axis labels --*/

 /*-- is this variable categorical? --*/
 vartyped vartype;
 gboolean isTime;

 /*-- categorical_p --*/
 gint nlevels;
 gint *level_values;
 gint *level_counts;
 gchar **level_names;  /*-- strings --*/

 /*-- unadjusted, unaffected by imputation --*/
 gfloat mean, median;

 lims lim_raw;       /*-- range of the raw data          --*/
 lims lim_tform;     /*-- range of d->tform              --*/

 /*
  * the limits to be put into the table: presently, this is
  * lim_tform but it excludes any missing values.
 */
 lims lim_display;  

 /*
  * If the user has supplied limits, lim_specified_p = true
  * and the limits are stored in lim_specified.{min,max}
 */
 gboolean lim_specified_p;
 lims lim_specified;
 lims lim_specified_tform;

 lims lim;      /*-- limits in use: lim_specified_tform or lim_tform --*/

 /*-- transformations --*/
 gint tform0;
 gfloat domain_incr;  /*-- stage 0 --*/
 gfloat (*domain_adj) (gfloat x, gfloat incr);
 gfloat (*inv_domain_adj) (gfloat x, gfloat incr);
 gint tform1;
 gfloat param;
 gint tform2;

 /*-- jittering --*/
 gfloat jitter_factor;

 /*-- in variable table --*/
 gboolean selected;

} vartabled;


#endif