annotate src/builtins.cc @ 240:a99f28f5e351

[project @ 1993-11-30 20:24:36 by jwe]
author jwe
date Tue, 30 Nov 1993 20:24:36 +0000
parents 7947b7a6b6da
children 7ec58832918f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 // builtins.cc -*- C++ -*-
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
3
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
4 Copyright (C) 1992, 1993 John W. Eaton
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11 later version.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
23
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 210
diff changeset
24 #ifdef HAVE_CONFIG_H
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 210
diff changeset
25 #include "config.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
26 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
27
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
28 #include <iostream.h>
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
29 #include <strstream.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
30 #include <math.h>
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
31 #include <float.h>
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
32
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
33 #include "tree-const.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
34 #include "t-builtins.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
35 #include "g-builtins.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
36 #include "builtins.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
37 #include "octave.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
38 #include "utils.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
39 #include "tree.h"
164
e2c950dd96d2 [project @ 1993-10-18 19:32:00 by jwe]
jwe
parents: 81
diff changeset
40 #include "help.h"
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
41 #include "pager.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
42 #include "mappers.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
43 #include "user-prefs.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
44 #include "variables.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
45
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
46 // NOTE: nargin == 1 means that the function takes no arguments (just
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
47 // like C, the first argument is (or should be, anyway) the function
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
48 // name). Also, -1 is shorthand for infinity.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
49
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
50 // The following initializations may eventually need to be reworked
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
51 // like the builtin functions in bash were around version 1.12...
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
52
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
53 static builtin_mapper_functions mapper_functions[] =
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
54 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
55 { "abs", 2, 1, 0, fabs, abs, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
56 "abs (X): compute abs (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
57
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
58 { "acos", 2, 1, 0, acos, NULL, acos,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
59 "acos (X): compute acos (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
60
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
61 { "acosh", 2, 1, 0, acosh, NULL, acosh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
62 "acosh (X): compute acosh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
63
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
64 { "angle", 2, 1, 0, arg, arg, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
65 "angle (X): compute arg (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
66
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
67 { "arg", 2, 1, 0, arg, arg, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
68 "arg (X): compute arg (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
69
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
70 { "asin", 2, 1, 0, asin, NULL, asin,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
71 "asin (X): compute asin (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
72
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
73 { "asinh", 2, 1, 0, asinh, NULL, asinh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
74 "asinh (X): compute asinh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
75
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
76 { "atan", 2, 1, 0, atan, NULL, atan,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
77 "atan (X): compute atan (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
78
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
79 { "atanh", 2, 1, 0, atanh, NULL, atanh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
80 "atanh (X): compute atanh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
81
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
82 { "ceil", 2, 1, 0, ceil, NULL, ceil,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
83 "ceil (X): round elements of X toward +Inf", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
84
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
85 { "conj", 2, 1, 0, conj, NULL, conj,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
86 "conj (X): compute complex conjugate for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
87
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
88 { "cos", 2, 1, 0, cos, NULL, cos,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
89 "cos (X): compute cos (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
90
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
91 { "cosh", 2, 1, 0, cosh, NULL, cosh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
92 "cosh (X): compute cosh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
93
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
94 { "exp", 2, 1, 0, exp, NULL, exp,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
95 "exp (X): compute exp (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
96
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
97 { "finite", 2, 1, 0, xfinite, xfinite, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
98 "finite (X): return 1 for finite elements of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
99
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
100 { "fix", 2, 1, 0, fix, NULL, fix,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
101 "fix (X): round elements of X toward zero", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
102
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
103 { "floor", 2, 1, 0, floor, NULL, floor,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
104 "floor (X): round elements of X toward -Inf", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
105
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
106 { "isinf", 2, 1, 0, xisinf, xisinf, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
107 "isinf (X): return 1 for elements of X infinite", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
108
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
109 { "imag", 2, 1, 0, imag, imag, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
110 "imag (X): return imaginary part for each elements of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
111
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
112 #ifdef HAVE_ISNAN
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
113 { "isnan", 2, 1, 0, xisnan, xisnan, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
114 "isnan (X): return 1 where elements of X are NaNs", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
115 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
116
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
117 { "log", 2, 1, 1, log, NULL, log,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
118 "log (X): compute log (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
119
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
120 { "log10", 2, 1, 1, log10, NULL, log10,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
121 "log10 (X): compute log10 (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
122
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
123 { "real", 2, 1, 0, real, real, NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
124 "real (X): return real part for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
125
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
126 { "round", 2, 1, 0, round, NULL, round,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
127 "round (X): round elements of X to nearest integer", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
128
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
129 { "sign", 2, 1, 0, signum, NULL, signum,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
130 "sign (X): apply signum function to elements of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
131
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
132 { "sin", 2, 1, 0, sin, NULL, sin,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
133 "sin (X): compute sin (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
134
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
135 { "sinh", 2, 1, 0, sinh, NULL, sinh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
136 "sinh (X): compute sinh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
137
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
138 { "sqrt", 2, 1, 1, sqrt, NULL, sqrt,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
139 "sqrt (X): compute sqrt (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
140
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
141 { "tan", 2, 1, 0, tan, NULL, tan,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
142 "tan (X): compute tan (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
143
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
144 { "tanh", 2, 1, 0, tanh, NULL, tanh,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
145 "tanh (X): compute tanh (X) for each element of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
146
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
147 { NULL, -1, -1, -1, NULL, NULL, NULL, NULL, },
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
148 };
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
149
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
150 static builtin_text_functions text_functions[] =
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
151 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
152 { "casesen", 2, builtin_casesen,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
153 "casesen [on|off]", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
154
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
155 { "cd", 2, builtin_cd,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
156 "cd [dir]\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
157 change current working directory\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
158 if no arguments are given, the current directory is changed to the\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
159 users home directory", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
160
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
161 { "clear", -1, builtin_clear,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
162 "clear [name ...]\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
163 clear symbol(s) matching a list of regular expressions\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
164 if no arguments are given, clear all user-defined variables and functions", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
165
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
166 { "dir", -1, builtin_ls,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
167 "dir [options]\n\nprint a directory listing", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
168
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
169 { "document", -1, builtin_document,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
170 "document symbol string ...\n\n", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
171
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
172 { "edit_history", -1, builtin_edit_history,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
173 "edit_history [first] [last]\n\nedit commands from the history list", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
174
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
175 { "format", -1, builtin_format,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
176 "format [style]\n\nset output formatting style", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
177
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
178 { "help", -1, builtin_help,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
179 "help [-i] [topic ...]\n\nprint cryptic yet witty messages", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
180
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
181 { "history", -1, builtin_history,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
182 "history [N] [-w file] [-r file] [-q]\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
183 display, save, or load command history", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
185 { "load", -1, builtin_load,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
186 "load [-force] file\n\nload variables from a file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
187
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
188 { "ls", -1, builtin_ls,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
189 "ls [options]\n\nprint a directory listing", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
190
61
50af4412a25f [project @ 1993-08-15 04:49:27 by jwe]
jwe
parents: 45
diff changeset
191 { "run_history", -1, builtin_run_history,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
192 "run_history [first] [last]\n\nrun commands from the history list", },
61
50af4412a25f [project @ 1993-08-15 04:49:27 by jwe]
jwe
parents: 45
diff changeset
193
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
194 { "save", -1, builtin_save,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
195 "save file [var ...]\n\nsave variables in a file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
196
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
197 { "set", -1, builtin_set,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
198 "set [options]\n\nset plotting options", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
199
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
200 { "show", -1, builtin_show,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
201 "show [options]\n\nshow plotting options", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
202
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
203 { "who", -1, builtin_who,
204
7e307bcc208a [project @ 1993-11-08 22:18:14 by jwe]
jwe
parents: 195
diff changeset
204 "who [-all] [-builtins] [-functions] [-long] [-variables]\n\n\
7e307bcc208a [project @ 1993-11-08 22:18:14 by jwe]
jwe
parents: 195
diff changeset
205 List currently defined symbol(s). Options may be shortened to one\n\
7e307bcc208a [project @ 1993-11-08 22:18:14 by jwe]
jwe
parents: 195
diff changeset
206 character, but may not be combined.", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
207
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
208 { NULL, -1, NULL, NULL, },
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
209 };
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
210
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
211 static builtin_general_functions general_functions[] =
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
212 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
213 { "all", 2, 1, builtin_all,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
214 "all (X): are all elements of X nonzero?", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
215
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
216 { "any", 2, 1, builtin_any,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
217 "any (X): are any elements of X nonzero?", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
218
19
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
219 { "balance", 4, 4, builtin_balance,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
220 "aa = balance (a [, opt]) or [[dd,] aa] = balance (a [, opt])\n\
19
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
221 generalized eigenvalue problem:\n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
222 [cc, dd, aa, bb] = balance (a, b [, opt])\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
223 where \"opt\" is an optional single character argument as follows: \n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
224 \"N\" or \"n\": no balancing; arguments copied, transformation(s) \n\
19
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
225 set to identity\n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
226 \"P\" or \"p\": permute argument(s) to isolate eigenvalues where possible\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
227 \"S\" or \"s\": scale to improve accuracy of computed eigenvalues\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
228 \"B\" or \"b\": (default) permute and scale, in that order. Rows/columns of a \n\
19
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
229 (and b) that are isolated by permutation are not scaled\n\
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
230 [dd, aa] = balance (a, opt) returns aa = dd\a*dd,\n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
231 [cc, dd, aa, bb] = balance (a, b, opt) returns aa (bb) = cc*a*dd (cc*b*dd)", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
232
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
233 { "chol", 2, 1, builtin_chol,
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
234 "chol (X): cholesky factorization", },
19
cbd2e6016014 [project @ 1993-08-10 20:13:07 by jwe]
jwe
parents: 1
diff changeset
235
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
236 { "clc", 1, 0, builtin_clc,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
237 "clc (): clear screen", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
238
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
239 { "clock", 1, 0, builtin_clock,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
240 "clock (): return current date and time in vector", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
241
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
242 { "closeplot", 1, 0, builtin_closeplot,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
243 "closeplot (): close the stream to plotter", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
244
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
245 { "colloc", 7, 4, builtin_colloc,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
246 "[r, A, B, q] = colloc (n [, \"left\"] [, \"right\"]): collocation weights", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
247
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
248 { "cumprod", 2, 1, builtin_cumprod,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
249 "cumprod (X): cumulative products", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
250
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
251 { "cumsum", 2, 1, builtin_cumsum,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
252 "cumsum (X): cumulative sums", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
253
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
254 { "dassl", 5, 1, builtin_dassl,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
255 "dassl (\"function_name\", x_0, xdot_0, t_out)\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
256 dassl (\"function_name\", x_0, xdot_0, t_out, t_crit)\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
257 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
258 The first argument is the name of the function to call to\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
259 compute the vector of residuals. It must have the form\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
260 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
261 res = f (x, xdot, t)\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
262 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
263 where x, xdot, and res are vectors, and t is a scalar.", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
264
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
265 { "date", 1, 0, builtin_date,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
266 "date (): return current date in a string", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
267
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
268 { "det", 2, 1, builtin_det,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
269 "det (X): determinant of a square matrix", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
270
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
271 { "diag", 3, 1, builtin_diag,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
272 "diag (X [,k]): form/extract diagonals", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
273
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
274 { "disp", 3, 1, builtin_disp,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
275 "disp (X): display value", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
276
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
277 { "eig", 2, 1, builtin_eig,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
278 "eig (x) or [v, d] = eig (x): compute eigenvalues and eigenvectors of x", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
279
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
280 { "error", 2, 1, builtin_error,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
281 "error (\"message\"): print message and jump to top level", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
282
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
283 { "eval", 2, 1, builtin_eval,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
284 "eval (\"string\"): evaluate text as octave source", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
285
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
286 { "exist", 2, 1, builtin_exist,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
287 "exist (\"name\"): check if variable or file exists", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
288
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
289 { "exit", 1, 0, builtin_quit,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
290 "exit (): exit Octave gracefully", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
291
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
292 { "expm", 2, 1, builtin_expm,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
293 "expm (X): matrix exponential, e^A", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
294
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
295 { "eye", 3, 1, builtin_eye,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
296 "eye (n), eye (n, m), eye (X): create an identity matrix", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
297
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
298 { "fclose", 2, 1, builtin_fclose,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
299 "fclose (\"filename\" or filenum): close a file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
300
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
301 { "feval", -1, 1, builtin_feval,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
302 "feval (\"name\", args, ...): evaluate first argument as function", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
303
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
304 { "fflush", 2, 1, builtin_fflush,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
305 "fflush (\"filename\" or filenum): flush buffered data to output file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
306
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
307 { "fft", 2, 1, builtin_fft,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
308 "fft (X): fast fourier transform of a vector", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
309
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
310 { "fgets",3, 2, builtin_fgets,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
311 "[string, length] = fgets (\"filename\" or filenum, length): read a string from a file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
312
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
313 { "find", -1, 1, builtin_find,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
314 "find (x): return vector of indices of nonzero elements", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
315
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
316 { "flops", 2, 1, builtin_flops,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
317 "flops (): count floating point operations", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
318
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
319 { "fopen", 3, 1, builtin_fopen,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
320 "filenum = fopen (\"filename\", \"mode\"): open a file\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
321 Legal values for mode include:\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
322 r : open text file for reading\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
323 w : open text file for writing; discard previous contents if any\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
324 a : append; open or create text file for writing at end of file\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
325 r+ : open text file for update (i.e., reading and writing)\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
326 w+ : create text file for update; discard previous contents if any\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
327 a+ : append; open or create text file for update, writing at end\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
328 Update mode permits reading from and writing to the same file.\n", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
329
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
330 { "fprintf", -1, 1, builtin_fprintf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
331 "fprintf (\"file\", \"fmt\", ...)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
332
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
333 { "freport", 1, 1, builtin_freport,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
334 "freport (): list open files and their status", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
335
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
336 { "frewind", 2, 1, builtin_frewind,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
337 "frewind (\"filename\" or filenum): set file position at beginning of file", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
338
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
339 { "fscanf", 3, -1, builtin_fscanf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
340 "[a, b, c, ...] = fscanf (\"file\", \"fmt\")", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
341
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
342 { "fseek", 4, 1, builtin_fseek,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
343 "fseek (\"filename\" or filenum, offset [, origin]): set file position for reading or writing", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
344
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
345 { "fsolve", 5, 1, builtin_fsolve,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
346 "Solve nonlinear equations using Minpack. Usage:\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
347 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
348 [x, info] = fsolve (\"f\", x0)\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
349 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
350 Where the first argument is the name of the function to call to\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
351 compute the vector of function values. It must have the form\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
352 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
353 y = f (x)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
354 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
355 where y and x are vectors.", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
356
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
357 { "fsqp", 11, 3, builtin_fsqp,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
358 #if defined (FSQP_MISSING)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
359 "This function requires FSQP, which is not freely\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
360 redistributable. For more information, read the file\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
361 libcruft/fsqp/README.MISSING in the source distribution.", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
362 #else
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
363 "[x, phi] = fsqp (x, \"phi\" [, lb, ub] [, lb, A, ub] [, lb, \"g\", ub])\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
364 Groups of arguments surrounded in `[]' are optional, but\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
365 must appear in the same relative order shown above.", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
366 #endif
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
367
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
368 { "ftell", 2, 1, builtin_ftell,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
369 "position = ftell (\"filename\" or filenum): returns the current file position", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
370
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
371 { "getenv", 2, 1, builtin_getenv,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
372 "getenv (\"string\"): get environment variable values", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
373
31
19b973bc5464 [project @ 1993-08-10 21:48:36 by jwe]
jwe
parents: 19
diff changeset
374 { "givens", 3, 2, builtin_givens,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
375 "G = givens (x, y): compute orthogonal matrix G = [c s; -conj (s) c]\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
376 such that G [x; y] = [*; 0] (x, y scalars)\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
377 [c, s] = givens (x, y) returns the (c, s) values themselves.", },
31
19b973bc5464 [project @ 1993-08-10 21:48:36 by jwe]
jwe
parents: 19
diff changeset
378
19b973bc5464 [project @ 1993-08-10 21:48:36 by jwe]
jwe
parents: 19
diff changeset
379
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
380 { "hess", 2, 2, builtin_hess,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
381 "[P, H] = hess (A) or H = hess (A): Hessenberg decomposition", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
382
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
383 { "home", 1, 0, builtin_clc,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
384 "home (): clear screen", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
385
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
386 { "input", 3, 1, builtin_input,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
387 "input (\"prompt\" [, \"s\"]): prompt user for [string] input", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
388
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
389 { "ifft", 2, 1, builtin_ifft,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
390 "ifft (X): inverse fast fourier transform of a vector", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
391
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
392 { "inv", 2, 1, builtin_inv,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
393 "inv (X): inverse of a square matrix", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
394
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
395 { "inverse", 2, 1, builtin_inv,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
396 "inverse (X): inverse of a square matrix", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
397
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
398 { "is_global", 2, 1, builtin_is_global,
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
399 "is_global (X): return 1 if the string X names a global variable", },
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
400
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
401 { "isstr", 2, 1, builtin_isstr,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
402 "isstr (X): return 1 if X is a string", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
403
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
404 { "keyboard", 2, 1, builtin_keyboard,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
405 "keyboard (\"prompt\"): maybe help in debugging M-files", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
406
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
407 { "logm", 2, 1, builtin_logm,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
408 "logm (x): matrix logarithm", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
409
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
410 { "lp_solve", 11, 3, builtin_lpsolve,
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
411 "lp_solve (): solve linear programs using lp_solve.", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
412
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
413 { "lsode", 6, 1, builtin_lsode,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
414 "lsode (\"function_name\", x0, t_out, t_crit)\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
415 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
416 The first argument is the name of the function to call to\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
417 compute the vector of right hand sides. It must have the form\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
418 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
419 xdot = f (x, t)\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
420 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
421 where xdot and x are vectors and t is a scalar.\n", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
422
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
423 { "lu", 2, 3, builtin_lu,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
424 "[L, U, P] = lu (A): LU factorization", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
425
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
426 { "max", 3, 2, builtin_max,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
427 "max (x): maximum value(s) of a vector (matrix)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
428
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
429 { "min", 3, 2, builtin_min,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
430 "min (x): minimum value(s) of a vector (matrix)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
431
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
432 { "npsol", 11, 3, builtin_npsol,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
433 #if defined (NPSOL_MISSING)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
434 "This function requires NPSOL, which is not freely\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
435 redistributable. For more information, read the file\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
436 libcruft/npsol/README.MISSING in the source distribution.", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
437 #else
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
438 "[x, obj, info, lambda] = npsol (x, \"phi\" [, lb, ub] [, lb, A, ub] [, lb, \"g\", ub])\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
439 Groups of arguments surrounded in `[]' are optional, but\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
440 must appear in the same relative order shown above.\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
441 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
442 The second argument is a string containing the name of the objective\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
443 function to call. The objective function must be of the form\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
444 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
445 y = phi (x)\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
446 \n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
447 where x is a vector and y is a scalar.", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
448 #endif
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
449
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
450 { "ones", 3, 1, builtin_ones,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
451 "ones (n), ones (n, m), ones (x): create a matrix of all ones", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
452
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
453 { "pause", 1, 0, builtin_pause,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
454 "pause (seconds): suspend program execution", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
455
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
456 { "purge_tmp_files", 5, 1, builtin_purge_tmp_files,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
457 "delete temporary data files used for plotting", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
458
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
459 { "printf", -1, 1, builtin_printf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
460 "printf (\"fmt\", ...)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
461
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
462 { "prod", 2, 1, builtin_prod,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
463 "prod (X): products", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
464
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
465 { "pwd", 1, 0, builtin_pwd,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
466 "pwd (): print current working directory", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
467
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
468 { "qpsol", 9, 3, builtin_qpsol,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
469 #if defined (QPSOL_MISSING)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
470 "This function requires QPSOL, which is not freely\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
471 redistributable. For more information, read the file\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
472 libcruft/qpsol/README.MISSING in the source distribution.", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
473 #else
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
474 "[x, obj, info, lambda] = qpsol (x, H, c [, lb, ub] [, lb, A, ub])\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
475 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
476 Groups of arguments surrounded in `[]' are optional, but\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
477 must appear in the same relative order shown above.", },
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
478 #endif
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
479
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
480 { "qr", 2, 2, builtin_qr,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
481 "[q, r] = qr (X): form QR factorization of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
482
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
483 { "quad", 6, 3, builtin_quad,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
484 "[v, ier, nfun] = quad (\"f\", a, b [, tol] [, sing])\n\
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
485 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
486 Where the first argument is the name of the function to call to\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
487 compute the value of the integrand. It must have the form\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
488 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
489 y = f (x)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
490 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
491 where y and x are scalars.\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
492 \n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
493 The second and third arguments are limits of integration. Either or\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
494 both may be infinite. The optional argument tol specifies the desired\n\
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
495 accuracy of the result. The optional argument sing is a vector of\n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
496 at which the integrand is singular.\n", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
497
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
498 { "quit", 1, 0, builtin_quit,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
499 "quit (): exit Octave gracefully", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
500
45
53764ee8f358 [project @ 1993-08-10 22:34:19 by jwe]
jwe
parents: 38
diff changeset
501 { "qzval", 3, 1, builtin_qzval,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
502 "x = qzval (A,B): compute generalized eigenvalues of \n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
503 the matrix pencil (A - lambda B). A and B must be real matrices.", },
45
53764ee8f358 [project @ 1993-08-10 22:34:19 by jwe]
jwe
parents: 38
diff changeset
504
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
505 { "rand", 2, 1, builtin_rand,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
506 "rand -- generate a random value\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
507 rand (n) -- generate N x N matrix\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
508 rand (A) -- generate matrix the size of A\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
509 rand (n, m) -- generate N x M matrix\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
510 rand (\"dist\") -- get current distribution\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
511 rand (\"distribution\") -- set distribution\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
512 rand (\"seed\") -- get current seed\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
513 rand (\"seed\", n) -- set seed", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
514
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
515 { "replot", 1, 0, builtin_replot,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
516 "replot (): redisplay current plot", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
517
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
518 { "scanf", 2, -1, builtin_scanf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
519 "[a, b, c, ...] = scanf (\"fmt\")", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
520
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
521 { "setstr", 2, 1, builtin_setstr,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
522 "setstr (v): convert a vector to a string", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
523
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
524 { "shell_cmd", 2, 1, builtin_shell_command,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
525 "shell_cmd (string [, return_output]): execute shell commands", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
526
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
527 { "schur", 3, 2, builtin_schur,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
528 "[U, S] = schur (A) or S = schur (A)\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
529 or, for ordered Schur:\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
530 [U, S] = schur (A, \"A, D, or U\") or S = schur (A, \"A, D, or U\")\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
531 where:\n\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
532 A = continuous time poles\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
533 D = discrete time poles\n\
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
534 U = unordered schur (default)", },
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
535
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
536
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
537 { "size", 2, 1, builtin_size,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
538 "[m, n] = size (x): return rows and columns of X", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
539
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
540 { "sort", 2, 2, builtin_sort,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
541 "[s, i] = sort (x): sort the columns of x, optionally return sort index", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
542
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
543 { "sqrtm", 2, 1, builtin_sqrtm,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
544 "sqrtm (x): matrix sqrt", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
545
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
546 { "sprintf", -1, 1, builtin_sprintf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
547 "s = sprintf (\"fmt\", ...)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
548
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
549 { "sscanf", 3, -1, builtin_sscanf,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
550 "[a, b, c, ...] = sscanf (string, \"fmt\")", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
551
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
552 { "sum", 2, 1, builtin_sum,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
553 "sum (X): sum of elements", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
554
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
555 { "sumsq", 2, 1, builtin_sumsq,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
556 "sumsq (X): sum of squares of elements", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
557
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
558 { "svd", 2, 3, builtin_svd,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
559 "s = svd (x) or [u, s, v] = svd (x): return SVD of x", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
560
38
cd5ac1c52ea6 [project @ 1993-08-10 22:12:50 by jwe]
jwe
parents: 31
diff changeset
561 { "syl", 4, 1, builtin_syl,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
562 "X = syl (A, B, C): solve the Sylvester equation A X + X B + C = 0", },
38
cd5ac1c52ea6 [project @ 1993-08-10 22:12:50 by jwe]
jwe
parents: 31
diff changeset
563
210
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
564 { "va_arg", 1, 1, builtin_va_arg,
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
565 "va_arg (): return next argument in function taking varible\n\
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
566 number of parameters", },
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
567
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
568 { "va_start", 1, 0, builtin_va_start,
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
569 "va_start (): reset the pointer to the list of optional arguments\n\
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
570 to the beginning", },
7947b7a6b6da [project @ 1993-11-12 10:51:10 by jwe]
jwe
parents: 206
diff changeset
571
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
572 { "warranty", 1, 0, builtin_warranty,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
573 "warranty (): describe copying conditions", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
574
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
575 { "zeros", 3, 1, builtin_zeros,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
576 "zeros (n), zeros (n, m), zeros (x): create a matrix of all zeros", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
577
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
578 { NULL, -1, -1, NULL, NULL, },
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
579 };
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
580
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
581 // This is a lie. Some of these get reassigned to be numeric
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
582 // variables. See below.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
583
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
584 static builtin_string_variables string_variables[] =
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
585 {
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
586 { "EDITOR", "??", sv_editor,
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
587 "name of the editor to be invoked by the edit_history command", },
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
588
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
589 { "I", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
590 "sqrt (-1)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
591
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
592 { "Inf", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
593 "infinity", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
594
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 181
diff changeset
595 { "INFO_FILE", "??", sv_info_file,
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 181
diff changeset
596 "name of the Octave info file", },
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 181
diff changeset
597
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
598 { "J", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
599 "sqrt (-1)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
600
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
601 #if defined (HAVE_ISNAN)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
602 { "NaN", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
603 "not a number", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
604 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
605
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
606 { "LOADPATH", "??", sv_loadpath,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
607 "colon separated list of directories to search for scripts", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
608
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
609 { "PAGER", "??", sv_pager_binary,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
610 "path to pager binary", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
611
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
612 { "PS1", "\\s:\\#> ", sv_ps1,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
613 "primary prompt string", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
614
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
615 { "PS2", "> ", sv_ps2,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
616 "secondary prompt string", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
617
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
618 { "PWD", "??PWD??", sv_pwd,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
619 "current working directory", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
620
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
621 { "SEEK_SET", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
622 "used with fseek to position file relative to the beginning", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
623
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
624 { "SEEK_CUR", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
625 "used with fseek to position file relative to the current position", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
626
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
627 { "SEEK_END", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
628 "used with fseek to position file relative to the end", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
629
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
630 { "do_fortran_indexing", "false", do_fortran_indexing,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
631 "allow single indices for matrices", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
632
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
633 { "empty_list_elements_ok", "warn", empty_list_elements_ok,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
634 "ignore the empty element in expressions like `a = [[], 1]'", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
635
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
636 { "eps", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
637 "machine precision", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
638
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
639 { "gnuplot_binary", "gnuplot", sv_gnuplot_binary,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
640 "path to gnuplot binary", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
641
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
642 { "i", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
643 "sqrt (-1)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
644
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
645 { "ignore_function_time_stamp", "system", ignore_function_time_stamp,
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
646 "don't check to see if M-files have changed since they were last\n\
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
647 compiled. Possible values are \"system\" and \"all\"", },
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
648
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
649 { "implicit_str_to_num_ok", "false", implicit_str_to_num_ok,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
650 "allow implicit string to number conversion", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
651
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
652 { "inf", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
653 "infinity", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
654
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
655 { "j", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
656 "sqrt (-1)", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
657
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
658 #if defined (HAVE_ISNAN)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
659 { "nan", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
660 "not a number", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
661 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
662
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
663 { "ok_to_lose_imaginary_part", "warn", ok_to_lose_imaginary_part,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
664 "silently convert from complex to real by dropping imaginary part", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
665
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
666 { "output_max_field_width", "??", set_output_max_field_width,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
667 "maximum width of an output field for numeric output", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
668
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
669 { "output_precision", "??", set_output_precision,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
670 "number of significant figures to display for numeric output", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
671
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
672 { "page_screen_output", "true", page_screen_output,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
673 "if possible, send output intended for the screen through the pager", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
674
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
675 { "pi", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
676 "ratio of the circumference of a circle to its diameter", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
677
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
678 { "prefer_column_vectors", "true", prefer_column_vectors,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
679 "prefer column/row vectors", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
680
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
681 { "prefer_zero_one_indexing", "false", prefer_zero_one_indexing,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
682 "when there is a conflict, prefer zero-one style indexing", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
683
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
684 { "print_answer_id_name", "true", print_answer_id_name,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
685 "set output style to print `var_name = ...'", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
686
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
687 { "print_empty_dimensions", "true", print_empty_dimensions,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
688 "also print dimensions of empty matrices", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
689
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
690 { "propagate_empty_matrices", "true", propagate_empty_matrices,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
691 "operations on empty matrices return an empty matrix, not an error", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
692
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
693 { "resize_on_range_error", "true", resize_on_range_error,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
694 "enlarge matrices on assignment", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
695
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
696 { "return_last_computed_value", "false", return_last_computed_value,
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
697 "if a function does not return any values explicitly, return the\n\
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
698 last computed value", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
699
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
700 { "silent_functions", "false", silent_functions,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
701 "suppress printing results in called functions", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
702
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
703 { "split_long_rows", "true", split_long_rows,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
704 "split long matrix rows instead of wrapping", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
705
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
706 { "stdin", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
707 "file number of the standard input stream", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
708
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
709 { "stdout", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
710 "file number of the standard output stream", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
711
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
712 { "stderr", "??", NULL,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
713 "file number of the standard error stream", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
714
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
715 { "treat_neg_dim_as_zero", "false", treat_neg_dim_as_zero,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
716 "convert negative dimensions to zero", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
717
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
718 { "warn_assign_as_truth_value", "true", warn_assign_as_truth_value,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
719 "produce warning for assignments used as truth values", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
720
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
721 { "warn_comma_in_global_decl", "true", warn_comma_in_global_decl,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
722 "produce warning for commas in global declarations", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
723
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
724 { "warn_divide_by_zero", "true", warn_divide_by_zero,
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
725 "on IEEE machines, allow divide by zero errors to be suppressed", },
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
726
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
727 { NULL, NULL, NULL, NULL, },
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
728 };
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
729
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
730 void
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
731 install_builtins (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
732 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
733 // So that the clear function can't delete other builtin variables and
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
734 // functions, they are given eternal life.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
735
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
736 builtin_mapper_functions *mfptr = mapper_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
737 while (mfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
738 {
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
739 install_builtin_mapper_function (mfptr);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
740 mfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
741 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
742
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
743 builtin_text_functions *tfptr = text_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
744 while (tfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
745 {
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
746 install_builtin_text_function (tfptr);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
747 tfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
748 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
749
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
750 builtin_general_functions *gfptr = general_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
751 while (gfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
752 {
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
753 install_builtin_general_function (gfptr);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
754 gfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
755 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
756
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
757 // Most built-in variables are not protected because the user should
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
758 // be able to redefine them.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
759
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
760 builtin_string_variables *svptr = string_variables;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
761 while (svptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
762 {
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
763 install_builtin_variable (svptr);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
764 svptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
765 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
766
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
767 // IMPORTANT: Always create a new tree_constant for each variable.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
768
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
769 tree_constant *tmp = NULL_TREE_CONST;
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
770 bind_builtin_variable ("ans", tmp);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
771
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
772 Complex ctmp (0.0, 1.0);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
773 tmp = new tree_constant (ctmp);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
774 bind_builtin_variable ("I", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
775
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
776 tmp = new tree_constant (ctmp);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
777 bind_builtin_variable ("J", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
778
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
779 // Let i and j be functions so they can be redefined without being
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
780 // wiped out.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
781
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
782 tmp = new tree_constant (ctmp);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
783 install_builtin_variable_as_function ("i", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
784
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
785 tmp = new tree_constant (ctmp);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
786 install_builtin_variable_as_function ("j", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
787
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
788 tmp = new tree_constant (get_working_directory ("initialize_globals"));
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
789 bind_builtin_variable ("PWD", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
790
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
791 tmp = new tree_constant (load_path);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
792 bind_builtin_variable ("LOADPATH", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
793
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 181
diff changeset
794 tmp = new tree_constant (info_file);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
795 bind_builtin_variable ("INFO_FILE", tmp, 0, 1);
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
796
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
797 tmp = new tree_constant (editor);
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
798 bind_builtin_variable ("EDITOR", tmp, 0, 1);
191
b6b4d8c513fe [project @ 1993-10-29 23:41:39 by jwe]
jwe
parents: 181
diff changeset
799
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
800 tmp = new tree_constant (default_pager ());
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
801 bind_builtin_variable ("PAGER", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
802
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
803 tmp = new tree_constant (0.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
804 bind_builtin_variable ("SEEK_SET", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
805
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
806 tmp = new tree_constant (1.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
807 bind_builtin_variable ("SEEK_CUR", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
808
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
809 tmp = new tree_constant (2.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
810 bind_builtin_variable ("SEEK_END", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
811
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
812 tmp = new tree_constant (DBL_EPSILON);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
813 bind_builtin_variable ("eps", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
814
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
815 tmp = new tree_constant (10.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
816 bind_builtin_variable ("output_max_field_width", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
817
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
818 tmp = new tree_constant (5.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
819 bind_builtin_variable ("output_precision", tmp, 0, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
820
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
821 tmp = new tree_constant (4.0 * atan (1.0));
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
822 bind_builtin_variable ("pi", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
823
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
824 tmp = new tree_constant (0.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
825 bind_builtin_variable ("stdin", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
826
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
827 tmp = new tree_constant (1.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
828 bind_builtin_variable ("stdout", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
829
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
830 tmp = new tree_constant (2.0);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
831 bind_builtin_variable ("stderr", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
832
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
833 // If using 1.0 / 0.0 doesn't work, you might also try using a very
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
834 // large constant like 1.0e100000.
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
835
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
836 #if defined (HAVE_ISINF) || defined (HAVE_FINITE)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
837 #ifdef linux
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
838 double tmp_inf = HUGE_VAL;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
839 #else
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
840 double tmp_inf = 1.0 / 0.0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
841 #endif
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
842
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
843 tmp = new tree_constant (tmp_inf);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
844 bind_builtin_variable ("Inf", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
845
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
846 tmp = new tree_constant (tmp_inf);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
847 bind_builtin_variable ("inf", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
848
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
849 #else
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
850
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
851 // This is sort of cheesy, but what can we do, other than blowing it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
852 // off completely, or writing an entire IEEE emulation package?
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
853
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
854 tmp = new tree_constant (DBL_MAX);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
855 bind_builtin_variable ("Inf", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
856
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
857 tmp = new tree_constant (DBL_MAX);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
858 bind_builtin_variable ("inf", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
859 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
860
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
861 // If 0.0 / 0.0 fails to produce a NaN, you might also try
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
862 // something like Inf / Inf.
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
863
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
864 #if defined (HAVE_ISNAN)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
865 #ifdef linux
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
866 double tmp_nan = NAN;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
867 #else
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
868 double tmp_nan = 0.0 / 0.0;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
869 #endif
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
870
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
871 tmp = new tree_constant (tmp_nan);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
872 bind_builtin_variable ("NaN", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
873
169
49ab724d0a32 [project @ 1993-10-21 21:56:38 by jwe]
jwe
parents: 164
diff changeset
874 tmp = new tree_constant (tmp_nan);
195
13c6086c325c [project @ 1993-11-06 10:12:29 by jwe]
jwe
parents: 191
diff changeset
875 bind_builtin_variable ("nan", tmp, 1, 1);
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
876 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
877 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
878
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
879 int
164
e2c950dd96d2 [project @ 1993-10-18 19:32:00 by jwe]
jwe
parents: 81
diff changeset
880 is_text_function_name (const char *s)
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
881 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
882 int retval = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
883
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
884 builtin_text_functions *tfptr = text_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
885 while (tfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
886 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
887 if (strcmp (tfptr->name, s) == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
888 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
889 retval = 1;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
890 break;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
891 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
892 tfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
893 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
894
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
895 return retval;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
896 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
897
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
898 help_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
899 builtin_mapper_functions_help (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
900 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
901 int count = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
902 builtin_mapper_functions *mfptr;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
903
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
904 mfptr = mapper_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
905 while (mfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
906 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
907 count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
908 mfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
909 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
910
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
911 if (count == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
912 return (help_list *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
913
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
914 help_list *hl = new help_list [count+1];
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
915
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
916 int i = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
917 mfptr = mapper_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
918 while (mfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
919 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
920 hl[i].name = mfptr->name;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
921 hl[i].help = mfptr->help_string;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
922 i++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
923 mfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
924 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
925
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
926 hl[count].name = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
927 hl[count].help = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
928
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
929 return hl;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
930 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
931
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
932 help_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
933 builtin_general_functions_help (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
934 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
935 int count = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
936 builtin_general_functions *gfptr;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
937
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
938 gfptr = general_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
939 while (gfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
940 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
941 count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
942 gfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
943 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
944
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
945 if (count == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
946 return (help_list *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
947
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
948 help_list *hl = new help_list [count+1];
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
949
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
950 int i = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
951 gfptr = general_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
952 while (gfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
953 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
954 hl[i].name = gfptr->name;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
955 hl[i].help = gfptr->help_string;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
956 i++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
957 gfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
958 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
959
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
960 hl[count].name = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
961 hl[count].help = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
962
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
963 return hl;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
964 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
965
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
966 help_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
967 builtin_text_functions_help (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
968 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
969 int count = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
970 builtin_text_functions *tfptr;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
971
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
972 tfptr = text_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
973 while (tfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
974 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
975 count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
976 tfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
977 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
978
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
979 if (count == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
980 return (help_list *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
981
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
982 help_list *hl = new help_list [count+1];
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
983
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
984 int i = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
985 tfptr = text_functions;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
986 while (tfptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
987 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
988 hl[i].name = tfptr->name;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
989 hl[i].help = tfptr->help_string;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
990 i++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
991 tfptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
992 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
993
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
994 hl[count].name = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
995 hl[count].help = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
996
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
997 return hl;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
998 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
999
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1000 help_list *
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1001 builtin_variables_help (void)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1002 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1003 int count = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1004 builtin_string_variables *svptr;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1005
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1006 svptr = string_variables;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1007 while (svptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1008 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1009 count++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1010 svptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1011 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1012
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1013 if (count == 0)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1014 return (help_list *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1015
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1016 help_list *hl = new help_list [count+1];
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1017
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1018 int i = 0;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1019 svptr = string_variables;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1020 while (svptr->name != (char *) NULL)
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1021 {
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1022 hl[i].name = svptr->name;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1023 hl[i].help = svptr->help_string;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1024 i++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1025 svptr++;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1026 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1027
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1028 hl[count].name = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1029 hl[count].help = (char *) NULL;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1030
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1031 return hl;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1032 }
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1033
181
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1034 int
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1035 help_from_list (ostrstream& output_buf, const help_list *list,
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1036 const char *string, int usage)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1037 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1038 char *name;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1039 while ((name = list->name) != (char *) NULL)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1040 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1041 if (strcmp (name, string) == 0)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1042 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1043 if (usage)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1044 output_buf << "\nusage: ";
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1045 else
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1046 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1047 output_buf << "\n*** " << string << ":\n\n";
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1048 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1049
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1050 output_buf << list->help << "\n";
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1051
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1052 return 1;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1053 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1054 list++;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1055 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1056 return 0;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1057 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1058
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1059 void
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1060 additional_help_message (ostrstream& output_buf)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1061 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1062 output_buf
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1063 << "\n"
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1064 << "Additional help for builtin functions, operators, and variables\n"
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1065 << "is available in the on-line version of the manual.\n"
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1066 << "\n"
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1067 << "Use the command `help -i <topic>' to search the manual index.\n";
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1068 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1069
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1070 void
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1071 print_usage (const char *string)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1072 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1073 ostrstream output_buf;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1074
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1075 help_list *gf_help_list = builtin_general_functions_help ();
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1076 help_list *tf_help_list = builtin_text_functions_help ();
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1077 help_list *mf_help_list = builtin_mapper_functions_help ();
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1078
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1079 if (help_from_list (output_buf, gf_help_list, string, 1)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1080 || help_from_list (output_buf, tf_help_list, string, 1)
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1081 || help_from_list (output_buf, mf_help_list, string, 1))
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1082 {
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1083 additional_help_message (output_buf);
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1084 output_buf << ends;
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1085 maybe_page_output (output_buf);
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1086 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1087 }
91ec95436dca [project @ 1993-10-23 22:45:17 by jwe]
jwe
parents: 169
diff changeset
1088
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1089 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1090 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1091 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1092 ;;; page-delimiter: "^/\\*" ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1093 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1094 */