1 /*      ----------------------------------------------------------------
2 	xldlas -- A Stastics Package
3 
4 	Copyright (C) 1996 Thor Sigvaldason
5 
6 	This file is read by all *.c sourcecode to get definitions and
7 	global variables
8 
9         ----------------------------------------------------------------*/
10 
11 /*
12 	More or less standard include files
13 */
14 
15 #include <forms.h>		/* You do have xforms installed don't you? */
16 #include <stdlib.h>
17 #include <signal.h>
18 #include <time.h>
19 #include <math.h>
20 #include <unistd.h>
21 #include <stdio.h>
22 #include <string.h>
23 #include <sys/wait.h>
24 #include <assert.h>
25 
26 #ifdef IN_MAIN
27 #define EXTERN
28 #else
29 #define EXTERN extern
30 #endif
31 
32 /*
33 	Some things you can only change at compile time
34 */
35 
36 #define XLDLAS_MAJOR	0			/* Current Major version number		*/
37 #define XLDLAS_MINOR	85			/* Current Minor version number		*/
38 #define XLDLAS_AUTHOR	"Thor Sigvaldason"	/* Please don't change (see License)	*/
39 #define	XLDLAS_DATE	"May 12 1997"		/* Roughly speaking			*/
40 #define XLDLAS_EMAIL	"thor@netcom.ca"	/* Subject to change			*/
41 #define XLDLAS_SITE1	"http://a42.com/~thor/xldlas/"
42 #define XLDLAS_SITE2	"ftp://sunsite.unc.edu/pub/Linux/X11/xapps/math/xldlas-X.Y-source.tgz"
43 #define XLDLAS_NUMB_BARS_MAX		50
44 #define XLDLAS_GA_MAXREAL		1000
45 #define XLDLAS_MAX_GA_CYCLES		50000
46 #define	XLDLAS_MAX_GA_BITSIZE		100
47 #define XLDLAS_MAX_GA_POOLSIZE		256
48 #define XLDLAS_MAX_OFFSET		2000	/* Max Horizontal Scrolling Main Window	*/
49 
50 
51 #define	MAX_OBS				10000	/* Maximum Observations			*/
52 #define MAX_VARS			100	/* Maximum Number of Variables          */
53 
54 /*
55 	If you need to handle larger data sets than this, then just
56 	change the numbers above to suit your tastes (and recompile!).
57 */
58 
59 #ifndef TRUE
60 #define TRUE		1			/* Standard Logic Testing		*/
61 #define	FALSE		0			/* "			"		*/
62 #endif
63 #define TYPE_COLS	1			/* User supplied format for imports	*/
64 #define TYPE_ROWS	2			/* "				  "	*/
65 #define	TINY		1.0e-20			/* Need this to calculate Gamma function*/
66 #define MAXIT		100			/* Max iterations to calculate Gamma	*/
67 #define EPS 		3.0e-7			/* A very small number			*/
68 #define FPMIN		1.0e-30			/* Smallest floating point value	*/
69 
70 
71 
72 #define DESC_LENGTH 	256			/* Characters in a variable's descrip.  */
73 #define NAME_LENGTH 	20			/* Characters in a variable's name      */
74 #define XLDLASMAX_INPUT 1024			/* Length of most strings		*/
75 #define XLDLAS_MISSING	-999999.0		/* Default value for missing observation*/
76 #define QUICK_DROPPING	FALSE			/* TRUE is faster but less intuitive	*/
77 
78 
79 
80 /*
81 	Lots of defaults which can be changed via .xldlasrc/preferences button
82 */
83 
84 #define XLDLAS_DEFAULT_KEY_BUTTON	FALSE;
85 #define XLDLAS_DEFAULT_OVERWRITE_BUTTON	TRUE;
86 #define XLDLAS_DEFAULT_NORMAL_BUTTON	TRUE;
87 #define XLDLAS_DEFAULT_OUTPUT_FORMAT	"postscript"
88 #define XLDLAS_DEFAULT_OUTPUT_OPTIONS	"eps 'helvetica' 20"
89 #define XLDLAS_DEFAULT_HIST_BARS	9
90 #define XLDLAS_DEFAULT_GNUPLOT_GEOMETRY	"300x240"
91 #define XLDLAS_DEFAULT_GA_CYCLES	500
92 #define XLDLAS_DEFAULT_NN_CYCLES	1000
93 #define XLDLAS_DEFAULT_NN_PICTEX	FALSE
94 #define XLDLAS_DEFAULT_NN_HIDDEN	4
95 #define XLDLAS_DEFAULT_NN_LEARN		0.10
96 #define XLDLAS_DEFAULT_NN_ANNEALING	FALSE
97 #define XLDLAS_DEFAULT_NN_SQUASH	3
98 #define XLDLAS_DEFAULT_GA_MUTATE	500
99 #define XLDLAS_DEFAULT_GA_MAXREAL	500
100 #define XLDLAS_DEFAULT_GA_BITSIZE	12
101 #define XLDLAS_DEFAULT_GA_POOLSIZE	100
102 #define XLDLAS_DEFAULT_GA_CROSS		200
103 #define XLDLAS_DEFAULT_GA_UPDATE	10
104 #define XLDLAS_DEFAULT_GA_SWAP		2
105 #define XLDLAS_DEFAULT_GA_PERTURBE	200
106 #define XLDLAS_DEFAULT_GA_TOLERANCE	0
107 #define XLDLAS_DEFAULT_PRINT_COMMAND	"lpr"
108 #define XLDLAS_DEFAULT_TEX_COMMAND	"tex"
109 #define XLDLAS_DEFAULT_DVIVIEW_COMMAND	"xdvi -expert -s 5"
110 #define XLDLAS_DEFAULT_DVIPRINT_COMMAND "dvips"
111 #define XLDLAS_DEFAULT_TEX_PREAMBLE	"\\input epsf \\input pictex"
112 #define XLDLAS_DEFAULT_TEX_GRAPHMACROL	"\\midinsert\\centerline{\\epsfbox{"
113 #define XLDLAS_DEFAULT_TEX_GRAPHMACROR	"}}\\endinsert"
114 #define XLDLAS_DEFAULT_ANOVA_TYPE	1
115 
116 /*
117 	Defines some Labels for Making Windows Sticky
118 */
119 
120 #define	XLDLAS_NUMB_WINDOWS 14
121 #define XLDLAS_REGRESS	0
122 #define XLDLAS_GAFIT 	1
123 #define XLDLAS_NNFIT 	2
124 #define XLDLAS_ANOVA 	3
125 #define XLDLAS_GRAPH 	4
126 #define XLDLAS_PREFS 	5
127 #define XLDLAS_INPUT 	6
128 #define XLDLAS_GENERATE 7
129 #define XLDLAS_ABOUT 	8
130 #define XLDLAS_HELP 	9
131 #define XLDLAS_SIGN	10
132 #define XLDLAS_EQMEAN	11
133 #define XLDLAS_FILTER	12
134 #define XLDLAS_WATSON	13
135 
136 
137 
138 
139 /*
140 	Used by tabular output to TeX to determine justification
141 */
142 
143 #define XLDLAS_JUST_CENTER		1
144 #define XLDLAS_JUST_LEFT		2
145 #define XLDLAS_JUST_RIGHT		3
146 
147 /*
148 	Below is the data structure for storing (vector of) variables
149 */
150 
151 struct vector_structure
152 {
153 		char	name[NAME_LENGTH];
154 		char	description[DESC_LENGTH];
155 		int	obs;
156 		float	*fmem_start;
157 };
158 
159 /* These are the possible errors that can be returned by the tips routines. */
160 
161 typedef enum {
162   TOOLTIPS_ERROR_NOERROR,            /* There is no error. */
163   TOOLTIPS_ERROR_NOTINITIALIZED,     /* The tooltips system is not
164 					initialized. */
165   TOOLTIPS_ERROR_ALREADYINITIALIZED, /* The tooltips system is already
166 					initialized. */
167   TOOLTIPS_ERROR_ALREADYSUSPENDED,   /* The tooltips system is already
168 					suspended. */
169   TOOLTIPS_ERROR_NOTSUSPENDED,       /* The tooltips system is not currently
170 					suspended. */
171   TOOLTIPS_ERROR_ALREADYREGISTERED,  /* The XForms object is already
172 					registered with the tooltips system. */
173   TOOLTIPS_ERROR_NOTREGISTERED,      /* The XForms object is not registered
174 					with the tooltips system. */
175   TOOLTIPS_ERROR_NONEFROMFORM,       /* No XForms objects from this form are
176 					registered with the tooltips system. */
177   TOOLTIPS_ERROR_BADJUSTIFICATION,   /* This justification combination is
178 					invalid. */
179   TOOLTIPS_ERROR_NOTENOUGHMEMORY,    /* There was a problem with memory
180 					allocation. */
181   TOOLTIPS_ERROR_NULLADDRESS,        /* The pointer passed was a NULL
182 					pointer. */
183   TOOLTIPS_ERROR_UNKNOWNERROR        /* This is an unknown error. */
184 } TOOLTIPS_ERROR;
185 
186 
187 /*
188 	A structure used by various data generation commands
189 */
190 struct math_thingy
191 {
192 		int 	operator;
193 		int	argument_type;
194 		char	float_argument[XLDLASMAX_INPUT];
195 		int	variable_argument;
196 		int	variable_lag;
197 };
198 
199 EXTERN struct	vector_structure data_matrix[MAX_VARS];		/*Data Attributes */
200 EXTERN struct  math_thingy math_construct;			/* Math thingy 	  */
201 EXTERN float	*fvector[MAX_VARS];				/*The actual data */
202 EXTERN char	data_matrix_description[DESC_LENGTH];		/*What data is it?*/
203 
204 EXTERN float	ga_coefs[MAX_VARS][4];
205 EXTERN float	ga_powers[MAX_VARS][4];
206 
207 EXTERN int	oktoquit, data_exists, gen_exists;
208 EXTERN int	help_exists[11];
209 EXTERN int	quick_dropping;
210 EXTERN int	real_drop;
211 EXTERN int	log_on;
212 EXTERN int	texlog_on;
213 EXTERN int	htmllog_on;
214 EXTERN int	log_verbose_on;
215 EXTERN int	texlog_verbose_on;
216 EXTERN int	htmllog_verbose_on;
217 EXTERN int	anova_type;
218 EXTERN int	balloon_help;
219 
220 EXTERN int	numb_variables;					/*Vars in memory  */
221 
222 EXTERN int 	import_type;
223 EXTERN int	graph_window_open;
224 EXTERN int	assume_sample;
225 
226 EXTERN char	help_location[XLDLASMAX_INPUT];		/*Where are help files?	  */
227 EXTERN FILE	*log_file;				/*File pointer for log    */
228 EXTERN FILE	*texlog_file;				/*File pointer for tex log*/
229 EXTERN FILE	*htmllog_file;				/*File pointer for htmllog*/
230 EXTERN char	log_name[XLDLASMAX_INPUT];
231 EXTERN char	texlog_name[XLDLASMAX_INPUT];
232 EXTERN char	htmllog_name[XLDLASMAX_INPUT];
233 EXTERN int     all_start;				/*Start obser for loops   */
234 EXTERN int     all_stop;				/*End obser for loops     */
235 EXTERN float	missing_value;				/*Value of missing obs	  */
236 EXTERN char	line_of_output[XLDLASMAX_INPUT];	/*Used to display results */
237 EXTERN char	filtered_tex_string[XLDLASMAX_INPUT];
238 EXTERN float	working[MAX_OBS];
239 EXTERN float	working_two[MAX_OBS];
240 EXTERN int	worksize;
241 EXTERN int	worksize_two;
242 EXTERN int	gnuplot_pipe;
243 EXTERN FILE	*gnuplot_datafile;
244 EXTERN char	gnuplot_datafile_name[L_tmpnam];
245 EXTERN pid_t	gnuplot_pid;
246 EXTERN int	graph_key_on;
247 EXTERN int	graph_overwrite_on;
248 EXTERN int	graph_normal_on;
249 EXTERN char	graph_output_format[XLDLASMAX_INPUT];
250 EXTERN char	graph_output_options[XLDLASMAX_INPUT];
251 EXTERN int	point_style[MAX_VARS];
252 EXTERN int	line_style[MAX_VARS];
253 EXTERN int	temp_varnumber;
254 EXTERN int	numb_bars;
255 EXTERN char	gnuplot_geometry[XLDLASMAX_INPUT];
256 extern char	**environ;
257 EXTERN int	main_offset;
258 
259 EXTERN int ga_cycles;
260 EXTERN int nn_cycles;
261 EXTERN int nn_pictex;
262 EXTERN int nn_squash;
263 EXTERN int nn_hidden;
264 EXTERN int nn_annealing;
265 EXTERN float nn_learn;
266 EXTERN int ga_update;
267 EXTERN int ga_mutate;
268 EXTERN int ga_force;
269 EXTERN int ga_maxreal;
270 EXTERN int ga_bitsize;
271 EXTERN int ga_poolsize;
272 EXTERN int ga_swap;
273 EXTERN int ga_cross;
274 EXTERN int ga_perturbe;
275 EXTERN int ga_tolerance;
276 
277 EXTERN int ga_cross_ok;
278 EXTERN int ga_mutate_ok;
279 EXTERN int ga_perturbe_ok;
280 EXTERN int ga_force;
281 
282 EXTERN int general_abort;
283 EXTERN int pearls_of_wisdom;
284 EXTERN int main_font;
285 
286 EXTERN char print_command[XLDLASMAX_INPUT];
287 EXTERN char tex_command[XLDLASMAX_INPUT];
288 EXTERN char dviview_command[XLDLASMAX_INPUT];
289 EXTERN char dviprint_command[XLDLASMAX_INPUT];
290 EXTERN char tex_preamble[XLDLASMAX_INPUT];
291 EXTERN char tex_graphmacrol[XLDLASMAX_INPUT];
292 EXTERN char tex_graphmacror[XLDLASMAX_INPUT];
293 
294 
295 EXTERN void file_routines(FL_OBJECT *menu, long user_data);
296 EXTERN void data_routines(FL_OBJECT *menu, long user_data);
297 EXTERN void log_routines(FL_OBJECT *menu, long user_data);
298 EXTERN void graph_routines(FL_OBJECT *menu, long user_data);
299 EXTERN void analysis_routines(FL_OBJECT *menu, long user_data);
300 EXTERN void help_routines(FL_OBJECT *menu, long user_data);
301 
302 /*
303 	Variable to store window geometries
304 */
305 
306 EXTERN int window_geometry[XLDLAS_NUMB_WINDOWS][4];
307 
308 /*
309 	Do we really need all these xforms objects as global variables?
310 	Probably not (and _bad_ programming style), but is does make
311 	life easier
312 */
313 
314 EXTERN FL_FORM		*frontend;
315 EXTERN FL_FORM		*about_window;
316 EXTERN FL_FORM		*input_window;
317 EXTERN FL_FORM		*help_window;
318 
319 EXTERN FL_OBJECT	*main_browser;
320 EXTERN FL_OBJECT	*input_browser;
321 EXTERN FL_OBJECT	*input_object;
322 EXTERN FL_OBJECT	*status_browser;
323 EXTERN FL_OBJECT	*help_browser;
324 
325 EXTERN FL_OBJECT 	*file_menu;
326 EXTERN FL_OBJECT 	*data_menu;
327 EXTERN FL_OBJECT 	*log_menu;
328 EXTERN FL_OBJECT 	*graph_menu;
329 EXTERN FL_OBJECT 	*analysis_menu;
330 EXTERN FL_OBJECT 	*help_menu;
331 EXTERN FL_OBJECT	*test_menu;
332 EXTERN FL_OBJECT	*filter_menu;
333 
334 EXTERN FL_OBJECT 	*load_button;
335 EXTERN FL_OBJECT 	*save_button;
336 EXTERN FL_OBJECT 	*describe_button;
337 EXTERN FL_OBJECT 	*plot_button;
338 EXTERN FL_OBJECT 	*regress_button;
339 EXTERN FL_OBJECT 	*preferences_button;
340 EXTERN FL_OBJECT 	*clear_button;
341 
342 EXTERN FL_OBJECT	*general_help_button;
343 EXTERN FL_OBJECT	*file_help_button;
344 EXTERN FL_OBJECT	*data_help_button;
345 EXTERN FL_OBJECT	*log_help_button;
346 EXTERN FL_OBJECT	*graph_help_button;
347 EXTERN FL_OBJECT	*analysis_help_button;
348 EXTERN FL_OBJECT	*license_help_button;
349 EXTERN FL_OBJECT	*tutorial_help_button;
350 EXTERN FL_OBJECT	*test_help_button;
351 EXTERN FL_OBJECT	*filter_help_button;
352 EXTERN FL_OBJECT	*horizontal_slider;
353 
354 EXTERN FL_OBJECT	*name_input;
355 EXTERN FL_OBJECT	*desc_input;
356 
357 EXTERN FL_FORM		*variable_window;
358 EXTERN FL_OBJECT	*variable_browser;
359 
360 EXTERN FL_FORM		*rename_window;
361 EXTERN FL_OBJECT	*rename_browser;
362 
363 EXTERN FL_FORM		*summarize_window;
364 EXTERN FL_OBJECT	*summarize_browser;
365 EXTERN FL_OBJECT	*summarize_from_counter;
366 EXTERN FL_OBJECT	*summarize_to_counter;
367 
368 EXTERN FL_FORM		*drop_window;
369 EXTERN FL_OBJECT	*drop_browser;
370 EXTERN FL_OBJECT	*drop_from_counter;
371 EXTERN FL_OBJECT	*drop_to_counter;
372 
373 EXTERN FL_FORM		*list_window;
374 EXTERN FL_OBJECT	*list_browser;
375 EXTERN FL_OBJECT	*list_from_counter;
376 EXTERN FL_OBJECT	*list_to_counter;
377 
378 EXTERN FL_FORM		*corr_window;
379 EXTERN FL_OBJECT	*corr_browser;
380 EXTERN FL_OBJECT	*corr_from_counter;
381 EXTERN FL_OBJECT	*corr_to_counter;
382 
383 EXTERN FL_FORM		*regress_window;
384 EXTERN FL_OBJECT	*regress1_browser;
385 EXTERN FL_OBJECT	*regress2_browser;
386 EXTERN FL_OBJECT	*regress_from_counter;
387 EXTERN FL_OBJECT	*regress_to_counter;
388 
389 EXTERN FL_FORM		*graph_window;
390 EXTERN FL_OBJECT	*xvar_browser;
391 EXTERN FL_OBJECT	*yvar_browser;
392 EXTERN FL_OBJECT	*choose_hist_button;
393 EXTERN FL_OBJECT	*choose_plot_button;
394 EXTERN FL_OBJECT	*graph_save_input;
395 EXTERN FL_OBJECT	*graph_format_input;
396 EXTERN FL_OBJECT	*graph_options_input;
397 EXTERN FL_OBJECT	*graph_key_choice;
398 EXTERN FL_OBJECT	*graph_title_input;
399 EXTERN FL_OBJECT	*graph_xlabel_input;
400 EXTERN FL_OBJECT	*graph_ylabel_input;
401 EXTERN FL_OBJECT	*graph_from_counter;
402 EXTERN FL_OBJECT	*graph_to_counter;
403 EXTERN FL_OBJECT	*graph_bar_counter;
404 EXTERN FL_OBJECT	*graph_key_button;
405 EXTERN FL_OBJECT	*graph_normal_button;
406 EXTERN FL_OBJECT	*graph_overwrite_button;
407 EXTERN FL_OBJECT	*fit_variable_input;
408 EXTERN FL_OBJECT	*fit_overwrite_button;
409 EXTERN FL_OBJECT	*graph_xrange_auto_button;
410 EXTERN FL_OBJECT	*graph_xrange_from_counter;
411 EXTERN FL_OBJECT	*graph_xrange_to_counter;
412 EXTERN FL_OBJECT	*graph_yrange_auto_button;
413 EXTERN FL_OBJECT	*graph_yrange_from_counter;
414 EXTERN FL_OBJECT	*graph_yrange_to_counter;
415 
416 EXTERN FL_FORM		*att_window;
417 EXTERN FL_OBJECT	*att_point_counter;
418 EXTERN FL_OBJECT	*att_line_counter;
419 
420 EXTERN FL_FORM		*ga_window;
421 EXTERN FL_OBJECT	*ga_chart;
422 EXTERN FL_OBJECT	*ga_from_counter;
423 EXTERN FL_OBJECT	*ga_to_counter;
424 EXTERN FL_OBJECT	*ga_cycles_counter;
425 EXTERN FL_OBJECT	*ga_update_counter;
426 EXTERN FL_OBJECT	*ga_mutate_counter;
427 EXTERN FL_OBJECT	*ga_maxreal_counter;
428 EXTERN FL_OBJECT	*ga_bitsize_counter;
429 EXTERN FL_OBJECT	*ga_poolsize_counter;
430 EXTERN FL_OBJECT	*ga_perturbe_counter;
431 EXTERN FL_OBJECT	*ga_tolerance_counter;
432 EXTERN FL_OBJECT	*ga_swap_counter;
433 EXTERN FL_OBJECT	*ga_cross_counter;
434 EXTERN FL_OBJECT	*ga_yvar_browser;
435 EXTERN FL_OBJECT	*ga_xvars_browser;
436 EXTERN FL_OBJECT	*ga_force_button;
437 EXTERN FL_OBJECT	*ga_mutate_button;
438 EXTERN FL_OBJECT	*ga_cross_button;
439 EXTERN FL_OBJECT	*ga_perturbe_button;
440 EXTERN FL_OBJECT	*ga_save_input;
441 EXTERN FL_OBJECT	*ga_overwrite_button;
442 EXTERN FL_OBJECT	*ga_go_button;
443 EXTERN FL_OBJECT	*ga_stop_button;
444 EXTERN FL_OBJECT	*ga_done_button;
445 
446 EXTERN FL_FORM		*log_window;
447 EXTERN FL_OBJECT	*log_verbose_button;
448 EXTERN FL_OBJECT	*log_on_button;
449 EXTERN FL_OBJECT	*log_file_input;
450 EXTERN FL_OBJECT	*log_view_button;
451 EXTERN FL_OBJECT	*log_print_button;
452 EXTERN FL_OBJECT	*log_done_button;
453 
454 EXTERN FL_FORM		*htmllog_window;
455 EXTERN FL_OBJECT	*htmllog_verbose_button;
456 EXTERN FL_OBJECT	*htmllog_on_button;
457 EXTERN FL_OBJECT	*htmllog_file_input;
458 EXTERN FL_OBJECT	*htmllog_view_button;
459 EXTERN FL_OBJECT	*htmllog_done_button;
460 
461 EXTERN FL_FORM		*texlog_window;
462 EXTERN FL_OBJECT	*texlog_verbose_button;
463 EXTERN FL_OBJECT	*texlog_on_button;
464 EXTERN FL_OBJECT	*texlog_file_input;
465 EXTERN FL_OBJECT	*texlog_source_button;
466 EXTERN FL_OBJECT	*texlog_dvi_button;
467 EXTERN FL_OBJECT	*texlog_print_button;
468 EXTERN FL_OBJECT	*texlog_done_button;
469 
470 EXTERN FL_FORM		*viewfile_window;
471 EXTERN FL_OBJECT	*viewfile_browser;
472 
473 EXTERN FL_FORM		*abort_window;
474 EXTERN FL_OBJECT	*general_abort_button;
475 
476 EXTERN FL_FORM		*prefs_window;
477 EXTERN FL_OBJECT	*prefs_quick_dropping_button;
478 EXTERN FL_OBJECT	*prefs_graph_key_on_button;
479 EXTERN FL_OBJECT	*prefs_graph_overwrite_on_button;
480 EXTERN FL_OBJECT	*prefs_graph_normal_on_button;
481 EXTERN FL_OBJECT	*prefs_ga_cross_ok_button;
482 EXTERN FL_OBJECT	*prefs_ga_mutate_ok_button;
483 EXTERN FL_OBJECT	*prefs_ga_force_button;
484 EXTERN FL_OBJECT	*prefs_ga_perturbe_ok_button;
485 EXTERN FL_OBJECT	*prefs_pearls_of_wisdom_button;
486 EXTERN FL_OBJECT	*prefs_numb_bars_counter;
487 EXTERN FL_OBJECT	*prefs_ga_cycles_counter;
488 EXTERN FL_OBJECT	*prefs_ga_update_counter;
489 EXTERN FL_OBJECT	*prefs_ga_mutate_counter;
490 EXTERN FL_OBJECT	*prefs_ga_maxreal_counter;
491 EXTERN FL_OBJECT	*prefs_ga_bitsize_counter;
492 EXTERN FL_OBJECT	*prefs_ga_poolsize_counter;
493 EXTERN FL_OBJECT	*prefs_ga_swap_counter;
494 EXTERN FL_OBJECT	*prefs_ga_cross_counter;
495 EXTERN FL_OBJECT	*prefs_ga_perturbe_counter;
496 EXTERN FL_OBJECT	*prefs_ga_tolerance_counter;
497 EXTERN FL_OBJECT	*prefs_missing_value_input;
498 EXTERN FL_OBJECT	*prefs_graph_output_format_input;
499 EXTERN FL_OBJECT	*prefs_graph_output_options_input;
500 EXTERN FL_OBJECT	*prefs_gnuplot_geometry_input;
501 EXTERN FL_OBJECT	*prefs_print_command_input;
502 EXTERN FL_OBJECT	*prefs_tex_command_input;
503 EXTERN FL_OBJECT	*prefs_dviview_command_input;
504 EXTERN FL_OBJECT	*prefs_dviprint_command_input;
505 EXTERN FL_OBJECT	*prefs_tex_preamble_input;
506 EXTERN FL_OBJECT	*prefs_tex_graphmacrol_input;
507 EXTERN FL_OBJECT	*prefs_tex_graphmacror_input;
508 EXTERN FL_OBJECT	*prefs_nnet_annealing_button;
509 EXTERN FL_OBJECT	*prefs_nnet_pictex_button;
510 EXTERN FL_OBJECT	*prefs_nn_learn_counter;
511 EXTERN FL_OBJECT	*prefs_nn_cycles_counter;
512 EXTERN FL_OBJECT	*prefs_balloon_help_button;
513 EXTERN FL_OBJECT	*prefs_font_group;
514 EXTERN FL_OBJECT	*prefs_font_small_button;
515 EXTERN FL_OBJECT	*prefs_font_normal_button;
516 EXTERN FL_OBJECT	*prefs_font_large_button;
517 EXTERN FL_OBJECT	*prefs_assume_sample_button;
518 
519 EXTERN FL_FORM		*gen_window;
520 EXTERN FL_OBJECT	*gen_data_browser;
521 EXTERN FL_OBJECT	*gen_from_counter;
522 EXTERN FL_OBJECT	*gen_to_counter;
523 EXTERN FL_OBJECT	*gen_var_choice;
524 EXTERN FL_OBJECT	*gen_name_input;
525 EXTERN FL_OBJECT	*gen_desc_input;
526 EXTERN FL_OBJECT	*gen_operator_browser;
527 EXTERN FL_OBJECT	*gen_argument_browser;
528 
529 EXTERN FL_FORM		*anova_window;
530 EXTERN FL_OBJECT	*anova_block_browser;
531 EXTERN FL_OBJECT	*anova_variable_browser;
532 EXTERN FL_OBJECT	*anova_one_button;
533 EXTERN FL_OBJECT	*anova_two_button;
534 EXTERN FL_OBJECT	*anova_from_counter;
535 EXTERN FL_OBJECT	*anova_to_counter;
536 EXTERN FL_OBJECT	*anova_block_counter;
537 
538 EXTERN FL_FORM		*nnet_window;
539 EXTERN FL_OBJECT	*nnet_output_browser;
540 EXTERN FL_OBJECT	*nnet_input_browser;
541 EXTERN FL_OBJECT	*nnet_variable_input;
542 EXTERN FL_OBJECT	*nnet_overwrite_button;
543 EXTERN FL_OBJECT	*nnet_annealing_button;
544 EXTERN FL_OBJECT	*nnet_from_counter;
545 EXTERN FL_OBJECT	*nnet_to_counter;
546 EXTERN FL_OBJECT	*nnet_cycles_counter;
547 EXTERN FL_OBJECT	*nnet_learn_counter;
548 EXTERN FL_OBJECT	*nnet_squasher_buttons;
549 EXTERN FL_OBJECT	*nnet_go_button;
550 EXTERN FL_OBJECT	*nnet_done_button;
551 EXTERN FL_OBJECT	*nnet_step_button;
552 EXTERN FL_OBJECT	*nnet_straight_button;
553 EXTERN FL_OBJECT	*nnet_sigmoid_button;
554 
555 EXTERN FL_FORM		*do_nnet_window;
556 EXTERN FL_OBJECT	*do_nnet_chart;
557 EXTERN FL_OBJECT	*do_nnet_browser;
558 EXTERN FL_OBJECT	*nnet_hidden_counter;
559 EXTERN FL_OBJECT	*nnet_pictex_button;
560 
561 EXTERN FL_FORM		*sign_window;
562 EXTERN FL_OBJECT	*sign_one_browser;
563 EXTERN FL_OBJECT	*sign_two_browser;
564 EXTERN FL_OBJECT	*sign_null_counter;
565 EXTERN FL_OBJECT	*sign_from_counter;
566 EXTERN FL_OBJECT	*sign_to_counter;
567 
568 EXTERN FL_FORM		*eqmean_window;
569 EXTERN FL_OBJECT	*eqmean_one_browser;
570 EXTERN FL_OBJECT	*eqmean_two_browser;
571 EXTERN FL_OBJECT	*eqmean_null_counter;
572 EXTERN FL_OBJECT	*eqmean_from_counter;
573 EXTERN FL_OBJECT	*eqmean_to_counter;
574 
575 EXTERN FL_FORM		*watson_window;
576 EXTERN FL_OBJECT	*watson_browser;
577 EXTERN FL_OBJECT	*watson_from_counter;
578 EXTERN FL_OBJECT	*watson_to_counter;
579 
580 EXTERN FL_FORM		*filter_window;
581 EXTERN FL_OBJECT	*filter_browser;
582 EXTERN FL_OBJECT	*filter_outliers_button;
583 EXTERN FL_OBJECT	*filter_detrend_button;
584 EXTERN FL_OBJECT	*filter_zo_button;
585 EXTERN FL_OBJECT	*filter_from_counter;
586 EXTERN FL_OBJECT	*filter_to_counter;
587