3294
|
1 @c Copyright (C) 1996, 1997 John W. Eaton |
|
2 @c This is part of the Octave manual. |
|
3 @c For copying conditions, see the file gpl.texi. |
|
4 |
4167
|
5 @node Preface |
3294
|
6 @unnumbered Preface |
|
7 @cindex contributors |
|
8 @cindex history |
|
9 |
|
10 Octave was originally intended to be companion software for an |
|
11 undergraduate-level textbook on chemical reactor design being written by |
|
12 James B. Rawlings of the University of Wisconsin-Madison and John |
|
13 G. Ekerdt of the University of Texas. |
|
14 |
|
15 Clearly, Octave is now much more than just another `courseware' package |
|
16 with limited utility beyond the classroom. Although our initial goals |
|
17 were somewhat vague, we knew that we wanted to create something that |
|
18 would enable students to solve realistic problems, and that they could |
|
19 use for many things other than chemical reactor design problems. |
|
20 |
|
21 There are those who would say that we should be teaching the students |
|
22 Fortran instead, because that is the computer language of engineering, |
|
23 but every time we have tried that, the students have spent far too much |
|
24 time trying to figure out why their Fortran code crashes and not enough |
|
25 time learning about chemical engineering. With Octave, most students |
|
26 pick up the basics quickly, and are using it confidently in just a few |
|
27 hours. |
|
28 |
|
29 Although it was originally intended to be used to teach reactor design, |
|
30 it has been used in several other undergraduate and graduate |
|
31 courses in the Chemical Engineering Department at the University of |
|
32 Texas, and the math department at the University of Texas has been using |
|
33 it for teaching differential equations and linear algebra as well. If |
|
34 you find it useful, please let us know. We are always interested to |
|
35 find out how Octave is being used in other places. |
|
36 |
|
37 Virtually everyone thinks that the name Octave has something to do with |
|
38 music, but it is actually the name of a former professor of mine who |
|
39 wrote a famous textbook on chemical reaction engineering, and who was |
|
40 also well known for his ability to do quick `back of the envelope' |
|
41 calculations. We hope that this software will make it possible for many |
|
42 people to do more ambitious computations just as easily. |
|
43 |
|
44 Everyone is encouraged to share this software with others under the |
|
45 terms of the GNU General Public License (@pxref{Copying}) as described |
|
46 at the beginning of this manual. You are also encouraged to help make |
|
47 Octave more useful by writing and contributing additional functions for |
|
48 it, and by reporting any problems you may have. |
|
49 |
|
50 @menu |
|
51 * Acknowledgements:: |
|
52 * How You Can Contribute to Octave:: |
|
53 * Distribution:: |
|
54 @end menu |
|
55 |
4167
|
56 @node Acknowledgements |
3294
|
57 @unnumberedsec Acknowledgements |
|
58 @cindex acknowledgements |
|
59 |
|
60 Many people have already contributed to Octave's development. In |
|
61 addition to John W. Eaton, the following people have helped write parts |
|
62 of Octave or helped out in various other ways. |
|
63 |
|
64 @c Once lp_solve has been added, don't forget to include the lp_solve |
|
65 @c author, and Kantor, for providing an example. |
|
66 |
|
67 @itemize @bullet |
|
68 @item |
|
69 Thomas Baier @email{baier@@ci.tuwien.ac.at} wrote the original versions |
|
70 of @code{popen}, @code{pclose}, @code{execute}, @code{sync_system}, and |
|
71 @code{async_system}. |
|
72 |
|
73 @item |
4869
|
74 David Bateman @email{dbateman@@free.fr} improved the sort and min/max |
|
75 functions, made many functions N-d aware, converted several built-in |
|
76 functions to use Lapack instead of Linpack, split the functionality of |
|
77 @file{load-save.cc} out into the @code{octave_value} classes, and has |
|
78 contributed in many other ways. |
4727
|
79 |
|
80 @item |
3294
|
81 Karl Berry @email{karl@@cs.umb.edu} wrote the @code{kpathsea} library |
|
82 that allows Octave to recursively search directory paths for function |
|
83 and script files. |
|
84 |
|
85 @item |
|
86 Georg Beyerle @email{gbeyerle@@awi-potsdam.de} contributed code to save |
|
87 values in @sc{Matlab}'s @file{.mat}-file format, and has provided many |
|
88 useful bug reports and suggestions. |
|
89 |
|
90 @item |
|
91 John Campbell @email{jcc@@bevo.che.wisc.edu} wrote most of the file and |
|
92 C-style input and output functions. |
|
93 |
|
94 @item |
4727
|
95 Dirk Eddelbuettel @email{edd@@debian.org} made Octave easy to install |
3918
|
96 for users of Debian GNU/Linux. |
|
97 |
|
98 @item |
3294
|
99 Brian Fox @email{bfox@@gnu.org} wrote the @code{readline} library |
|
100 used for command history editing, and the portion of this manual that |
|
101 documents it. |
|
102 |
|
103 @item |
|
104 Klaus Gebhardt @email{gebhardt@@crunch.ikp.physik.th-darmstadt.de} |
|
105 ported Octave to OS/2. |
|
106 |
|
107 @item |
3918
|
108 Kai Habel @email{kai.habel@@gmx.de} implemted functions for performing |
|
109 coordinate transformations. |
|
110 |
|
111 @item |
3294
|
112 A. Scottedward Hodel @email{A.S.Hodel@@eng.auburn.edu} contributed a number |
|
113 of functions including @code{expm}, @code{qzval}, @code{qzhess}, |
|
114 @code{syl}, @code{lyap}, and @code{balance}. |
|
115 |
|
116 @item |
|
117 Kurt Hornik @email{Kurt.Hornik@@ci.tuwien.ac.at} provided the |
|
118 @code{corrcoef}, @code{cov}, @code{fftconv}, @code{fftfilt}, @code{gcd}, |
|
119 @code{lcd}, @code{kurtosis}, @code{null}, @code{orth}, @code{poly}, |
|
120 @code{polyfit}, @code{roots}, and @code{skewness} functions, supplied |
|
121 documentation for these and numerous other functions, rewrote the Emacs |
|
122 mode for editing Octave code and provided its documentation, and has |
|
123 helped tremendously with testing. He has also been a constant source of |
|
124 new ideas for improving Octave. |
|
125 |
|
126 @item |
3928
|
127 Cai Jianming @email{caijianming@@yahoo.co.uk} contributed the inital |
|
128 cell array implementation. |
|
129 |
|
130 @item |
3294
|
131 Phil Johnson @email{johnsonp@@nicco.sscnet.ucla.edu} has helped to make |
|
132 Linux releases available. |
|
133 |
|
134 @item |
3918
|
135 Steven G. Johnson @email{stevenj@@alum.mit.edu} added support for ATLAS, |
|
136 saving data in HDF5 files, and ported Octave's configure script to |
|
137 Autoconf 2.50. |
|
138 |
|
139 @item |
|
140 Mumit Khan @email{khan@@nanotech.wisc.edu} helped make it possible for |
|
141 Octave to be compiled by ISO standard C++ compilers other than GCC. |
|
142 |
|
143 @item |
|
144 Paul Kienzle @email{pkienzle@@users.sf.net} has provided many |
|
145 enhancements to improve Octave's compatibility with @sc{Matlab}, and |
|
146 also maintains the collection of conributed code at |
|
147 @url{http://octave.sf.net}. |
|
148 |
|
149 @item |
|
150 Bill Lash @email{lash@@tellabs.com} provided the @code{unwrap} function. |
|
151 |
|
152 @item |
|
153 Dirk Laurie @email{dirk@@calvyn.puk.ac.za} rewrote @code{invhilb} to be |
|
154 faster and more accurate. |
|
155 |
|
156 @item |
3294
|
157 Friedrich Leisch @email{leisch@@ci.tuwien.ac.at} provided the |
|
158 @code{mahalanobis} function. |
|
159 |
|
160 @item |
|
161 Ken Neighbors @email{wkn@@leland.stanford.edu} has provided many useful |
|
162 bug reports and comments on @sc{Matlab} compatibility. |
|
163 |
|
164 @item |
|
165 Rick Niles @email{niles@@axp745.gsfc.nasa.gov} rewrote Octave's plotting |
|
166 functions to add line styles and the ability to specify an unlimited |
|
167 number of lines in a single call. He also continues to track down odd |
|
168 incompatibilities and bugs. |
|
169 |
|
170 @item |
3895
|
171 Mark Odegard @email{meo@@getech.com} provided the initial |
3294
|
172 implementation of @code{fread}, @code{fwrite}, @code{feof}, and |
|
173 @code{ferror}. |
|
174 |
|
175 @item |
3918
|
176 Gabriele Pannocchia @email{pannocchia@@ing.unipi.it} provided the |
4613
|
177 @code{dkalman.m} function, added support for singular system matrices |
|
178 to @code{dlqe} and @code{dlqr}, and has made various other |
|
179 improvements to the control system functions. |
3918
|
180 |
|
181 @item |
4613
|
182 Tony Richardson @email{richardson@@evansville.edu} wrote Octave's |
3294
|
183 image processing functions as well as most of the original polynomial |
|
184 functions. |
|
185 |
|
186 @item |
4613
|
187 Petter Risholm @email{Petter.Risholm@@idi.ntnu.no} helped to implement |
|
188 much of Octave's N-d array functionality. |
|
189 |
|
190 @item |
3918
|
191 Ben Sapp @email{bsapp@@lanl.gov} implemented the debugger functions and |
|
192 added Texinfo markup commands to the internal doc strings. |
|
193 |
|
194 @item |
4336
|
195 R. Bruce Tenison @email{btenison@@rstc.cc.al.us} wrote the |
3294
|
196 @code{hess} and @code{schur} functions. |
|
197 |
|
198 @item |
|
199 Teresa Twaroch @email{twaroch@@ci.tuwien.ac.at} provided the functions |
|
200 @code{gls} and @code{ols}. |
|
201 |
|
202 @item |
3918
|
203 James R. Van Zandt @email{jrv@@vanzandt.mv.com} added support for |
|
204 reading and writing @sc{Matlab} version 5 binary data files. |
|
205 |
|
206 @item |
3294
|
207 Andreas Weingessel @email{Andreas.Weingessel@@ci.tuwien.ac.at} wrote the |
|
208 audio functions @code{lin2mu}, @code{loadaudio}, @code{mu2lin}, |
|
209 @code{playaudio}, @code{record}, @code{saveaudio}, and @code{setaudio}. |
|
210 |
|
211 @item |
|
212 Fook Fah Yap @email{ffy@@eng.cam.ac.uk} provided the @code{fft} and |
|
213 @code{ifft} functions and valuable bug reports for early versions. |
|
214 @end itemize |
|
215 |
|
216 Special thanks to the following people and organizations for |
|
217 supporting the development of Octave: |
|
218 |
|
219 @itemize @bullet |
|
220 @item |
3839
|
221 The National Science Foundation, through grant numbers CTS-0105360, |
|
222 CTS-9708497, CTS-9311420, and CTS-8957123. |
|
223 |
|
224 @item |
|
225 The industrial members of the Texas-Wisconsin Modeling and Control |
|
226 Consortium (@uref{http://www.che.utexas.edu/twmcc, TWMCC}). |
|
227 |
|
228 @item |
|
229 The Paul A. Elfers Endowed Chair in Chemical Engineering at the |
|
230 University of Wisconsin-Madison. |
|
231 |
|
232 @item |
3294
|
233 Digital Equipment Corporation, for an equipment grant as part of their |
|
234 External Research Program. |
|
235 |
|
236 @item |
|
237 Sun Microsystems, Inc., for an Academic Equipment grant. |
|
238 |
|
239 @item |
|
240 International Business Machines, Inc., for providing equipment as part |
|
241 of a grant to the University of Texas College of Engineering. |
|
242 |
|
243 @item |
|
244 Texaco Chemical Company, for providing funding to continue the |
|
245 development of this software. |
|
246 |
|
247 @item |
|
248 The University of Texas College of Engineering, for providing a |
|
249 Challenge for Excellence Research Supplement, and for providing an |
|
250 Academic Development Funds grant. |
|
251 |
|
252 @item |
|
253 The State of Texas, for providing funding through the Texas |
|
254 Advanced Technology Program under Grant No. 003658-078. |
|
255 |
|
256 @item |
|
257 Noel Bell, Senior Engineer, Texaco Chemical Company, Austin Texas. |
|
258 |
|
259 @item |
|
260 James B. Rawlings, Professor, University of Wisconsin-Madison, |
|
261 Department of Chemical Engineering. |
|
262 |
|
263 @item |
|
264 Richard Stallman, for writing GNU. |
|
265 @end itemize |
|
266 |
|
267 This project would not have been possible without the GNU software used |
|
268 in and used to produce Octave. |
|
269 |
4167
|
270 @node How You Can Contribute to Octave |
3294
|
271 @unnumberedsec How You Can Contribute to Octave |
|
272 @cindex contributing to Octave |
|
273 @cindex funding Octave development |
|
274 |
|
275 There are a number of ways that you can contribute to help make Octave a |
|
276 better system. Perhaps the most important way to contribute is to write |
|
277 high-quality code for solving new problems, and to make your code freely |
|
278 available for others to use. |
|
279 |
|
280 If you find Octave useful, consider providing additional funding to |
|
281 continue its development. Even a modest amount of additional funding |
|
282 could make a significant difference in the amount of time that is |
|
283 available for development and support. |
|
284 |
|
285 If you cannot provide funding or contribute code, you can still help |
|
286 make Octave better and more reliable by reporting any bugs you find and |
|
287 by offering suggestions for ways to improve Octave. @xref{Trouble}, for |
|
288 tips on how to write useful bug reports. |
|
289 |
4167
|
290 @node Distribution |
3294
|
291 @unnumberedsec Distribution |
|
292 @cindex distribution of Octave |
|
293 |
|
294 Octave is @dfn{free} software. This means that everyone is free to |
|
295 use it and free to redistribute it on certain conditions. Octave is not |
|
296 in the public domain. It is copyrighted and there are restrictions on |
|
297 its distribution, but the restrictions are designed to ensure that |
|
298 others will have the same freedom to use and redistribute Octave that |
|
299 you have. The precise conditions can be found in the GNU General Public |
|
300 License that comes with Octave and that also appears in @ref{Copying}. |
|
301 |
|
302 Octave is available on CD-ROM with various collections of other free |
|
303 software, and from the Free Software Foundation. Ordering a copy of |
|
304 Octave from the Free Software Foundation helps to fund the development |
|
305 of more free software. For more information, write to |
|
306 |
|
307 @quotation |
|
308 Free Software Foundation@* |
|
309 59 Temple Place---Suite 330@* |
|
310 Boston, MA 02111--1307@* |
|
311 USA |
|
312 @end quotation |
|
313 |
|
314 Octave is also available on the Internet from |
|
315 @url{ftp://ftp.che.wisc.edu/pub/octave}, and additional information is |
|
316 available from @url{http://www.che.wisc.edu/octave}. |