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 |
|
74 Karl Berry @email{karl@@cs.umb.edu} wrote the @code{kpathsea} library |
|
75 that allows Octave to recursively search directory paths for function |
|
76 and script files. |
|
77 |
|
78 @item |
|
79 Georg Beyerle @email{gbeyerle@@awi-potsdam.de} contributed code to save |
|
80 values in @sc{Matlab}'s @file{.mat}-file format, and has provided many |
|
81 useful bug reports and suggestions. |
|
82 |
|
83 @item |
|
84 John Campbell @email{jcc@@bevo.che.wisc.edu} wrote most of the file and |
|
85 C-style input and output functions. |
|
86 |
|
87 @item |
3918
|
88 Dirk Eddelbuettel @email{edd@@debian.org} makes Octave easy to install |
|
89 for users of Debian GNU/Linux. |
|
90 |
|
91 @item |
3294
|
92 Brian Fox @email{bfox@@gnu.org} wrote the @code{readline} library |
|
93 used for command history editing, and the portion of this manual that |
|
94 documents it. |
|
95 |
|
96 @item |
|
97 Klaus Gebhardt @email{gebhardt@@crunch.ikp.physik.th-darmstadt.de} |
|
98 ported Octave to OS/2. |
|
99 |
|
100 @item |
3918
|
101 Kai Habel @email{kai.habel@@gmx.de} implemted functions for performing |
|
102 coordinate transformations. |
|
103 |
|
104 @item |
3294
|
105 A. Scottedward Hodel @email{A.S.Hodel@@eng.auburn.edu} contributed a number |
|
106 of functions including @code{expm}, @code{qzval}, @code{qzhess}, |
|
107 @code{syl}, @code{lyap}, and @code{balance}. |
|
108 |
|
109 @item |
|
110 Kurt Hornik @email{Kurt.Hornik@@ci.tuwien.ac.at} provided the |
|
111 @code{corrcoef}, @code{cov}, @code{fftconv}, @code{fftfilt}, @code{gcd}, |
|
112 @code{lcd}, @code{kurtosis}, @code{null}, @code{orth}, @code{poly}, |
|
113 @code{polyfit}, @code{roots}, and @code{skewness} functions, supplied |
|
114 documentation for these and numerous other functions, rewrote the Emacs |
|
115 mode for editing Octave code and provided its documentation, and has |
|
116 helped tremendously with testing. He has also been a constant source of |
|
117 new ideas for improving Octave. |
|
118 |
|
119 @item |
3928
|
120 Cai Jianming @email{caijianming@@yahoo.co.uk} contributed the inital |
|
121 cell array implementation. |
|
122 |
|
123 @item |
3294
|
124 Phil Johnson @email{johnsonp@@nicco.sscnet.ucla.edu} has helped to make |
|
125 Linux releases available. |
|
126 |
|
127 @item |
3918
|
128 Steven G. Johnson @email{stevenj@@alum.mit.edu} added support for ATLAS, |
|
129 saving data in HDF5 files, and ported Octave's configure script to |
|
130 Autoconf 2.50. |
|
131 |
|
132 @item |
|
133 Mumit Khan @email{khan@@nanotech.wisc.edu} helped make it possible for |
|
134 Octave to be compiled by ISO standard C++ compilers other than GCC. |
|
135 |
|
136 @item |
|
137 Paul Kienzle @email{pkienzle@@users.sf.net} has provided many |
|
138 enhancements to improve Octave's compatibility with @sc{Matlab}, and |
|
139 also maintains the collection of conributed code at |
|
140 @url{http://octave.sf.net}. |
|
141 |
|
142 @item |
|
143 Bill Lash @email{lash@@tellabs.com} provided the @code{unwrap} function. |
|
144 |
|
145 @item |
|
146 Dirk Laurie @email{dirk@@calvyn.puk.ac.za} rewrote @code{invhilb} to be |
|
147 faster and more accurate. |
|
148 |
|
149 @item |
3294
|
150 Friedrich Leisch @email{leisch@@ci.tuwien.ac.at} provided the |
|
151 @code{mahalanobis} function. |
|
152 |
|
153 @item |
|
154 Ken Neighbors @email{wkn@@leland.stanford.edu} has provided many useful |
|
155 bug reports and comments on @sc{Matlab} compatibility. |
|
156 |
|
157 @item |
|
158 Rick Niles @email{niles@@axp745.gsfc.nasa.gov} rewrote Octave's plotting |
|
159 functions to add line styles and the ability to specify an unlimited |
|
160 number of lines in a single call. He also continues to track down odd |
|
161 incompatibilities and bugs. |
|
162 |
|
163 @item |
3895
|
164 Mark Odegard @email{meo@@getech.com} provided the initial |
3294
|
165 implementation of @code{fread}, @code{fwrite}, @code{feof}, and |
|
166 @code{ferror}. |
|
167 |
|
168 @item |
3918
|
169 Gabriele Pannocchia @email{pannocchia@@ing.unipi.it} provided the |
4613
|
170 @code{dkalman.m} function, added support for singular system matrices |
|
171 to @code{dlqe} and @code{dlqr}, and has made various other |
|
172 improvements to the control system functions. |
3918
|
173 |
|
174 @item |
4613
|
175 Tony Richardson @email{richardson@@evansville.edu} wrote Octave's |
3294
|
176 image processing functions as well as most of the original polynomial |
|
177 functions. |
|
178 |
|
179 @item |
4613
|
180 Petter Risholm @email{Petter.Risholm@@idi.ntnu.no} helped to implement |
|
181 much of Octave's N-d array functionality. |
|
182 |
|
183 @item |
3918
|
184 Ben Sapp @email{bsapp@@lanl.gov} implemented the debugger functions and |
|
185 added Texinfo markup commands to the internal doc strings. |
|
186 |
|
187 @item |
4336
|
188 R. Bruce Tenison @email{btenison@@rstc.cc.al.us} wrote the |
3294
|
189 @code{hess} and @code{schur} functions. |
|
190 |
|
191 @item |
|
192 Teresa Twaroch @email{twaroch@@ci.tuwien.ac.at} provided the functions |
|
193 @code{gls} and @code{ols}. |
|
194 |
|
195 @item |
3918
|
196 James R. Van Zandt @email{jrv@@vanzandt.mv.com} added support for |
|
197 reading and writing @sc{Matlab} version 5 binary data files. |
|
198 |
|
199 @item |
3294
|
200 Andreas Weingessel @email{Andreas.Weingessel@@ci.tuwien.ac.at} wrote the |
|
201 audio functions @code{lin2mu}, @code{loadaudio}, @code{mu2lin}, |
|
202 @code{playaudio}, @code{record}, @code{saveaudio}, and @code{setaudio}. |
|
203 |
|
204 @item |
|
205 Fook Fah Yap @email{ffy@@eng.cam.ac.uk} provided the @code{fft} and |
|
206 @code{ifft} functions and valuable bug reports for early versions. |
|
207 @end itemize |
|
208 |
|
209 Special thanks to the following people and organizations for |
|
210 supporting the development of Octave: |
|
211 |
|
212 @itemize @bullet |
|
213 @item |
3839
|
214 The National Science Foundation, through grant numbers CTS-0105360, |
|
215 CTS-9708497, CTS-9311420, and CTS-8957123. |
|
216 |
|
217 @item |
|
218 The industrial members of the Texas-Wisconsin Modeling and Control |
|
219 Consortium (@uref{http://www.che.utexas.edu/twmcc, TWMCC}). |
|
220 |
|
221 @item |
|
222 The Paul A. Elfers Endowed Chair in Chemical Engineering at the |
|
223 University of Wisconsin-Madison. |
|
224 |
|
225 @item |
3294
|
226 Digital Equipment Corporation, for an equipment grant as part of their |
|
227 External Research Program. |
|
228 |
|
229 @item |
|
230 Sun Microsystems, Inc., for an Academic Equipment grant. |
|
231 |
|
232 @item |
|
233 International Business Machines, Inc., for providing equipment as part |
|
234 of a grant to the University of Texas College of Engineering. |
|
235 |
|
236 @item |
|
237 Texaco Chemical Company, for providing funding to continue the |
|
238 development of this software. |
|
239 |
|
240 @item |
|
241 The University of Texas College of Engineering, for providing a |
|
242 Challenge for Excellence Research Supplement, and for providing an |
|
243 Academic Development Funds grant. |
|
244 |
|
245 @item |
|
246 The State of Texas, for providing funding through the Texas |
|
247 Advanced Technology Program under Grant No. 003658-078. |
|
248 |
|
249 @item |
|
250 Noel Bell, Senior Engineer, Texaco Chemical Company, Austin Texas. |
|
251 |
|
252 @item |
|
253 James B. Rawlings, Professor, University of Wisconsin-Madison, |
|
254 Department of Chemical Engineering. |
|
255 |
|
256 @item |
|
257 Richard Stallman, for writing GNU. |
|
258 @end itemize |
|
259 |
|
260 This project would not have been possible without the GNU software used |
|
261 in and used to produce Octave. |
|
262 |
4167
|
263 @node How You Can Contribute to Octave |
3294
|
264 @unnumberedsec How You Can Contribute to Octave |
|
265 @cindex contributing to Octave |
|
266 @cindex funding Octave development |
|
267 |
|
268 There are a number of ways that you can contribute to help make Octave a |
|
269 better system. Perhaps the most important way to contribute is to write |
|
270 high-quality code for solving new problems, and to make your code freely |
|
271 available for others to use. |
|
272 |
|
273 If you find Octave useful, consider providing additional funding to |
|
274 continue its development. Even a modest amount of additional funding |
|
275 could make a significant difference in the amount of time that is |
|
276 available for development and support. |
|
277 |
|
278 If you cannot provide funding or contribute code, you can still help |
|
279 make Octave better and more reliable by reporting any bugs you find and |
|
280 by offering suggestions for ways to improve Octave. @xref{Trouble}, for |
|
281 tips on how to write useful bug reports. |
|
282 |
4167
|
283 @node Distribution |
3294
|
284 @unnumberedsec Distribution |
|
285 @cindex distribution of Octave |
|
286 |
|
287 Octave is @dfn{free} software. This means that everyone is free to |
|
288 use it and free to redistribute it on certain conditions. Octave is not |
|
289 in the public domain. It is copyrighted and there are restrictions on |
|
290 its distribution, but the restrictions are designed to ensure that |
|
291 others will have the same freedom to use and redistribute Octave that |
|
292 you have. The precise conditions can be found in the GNU General Public |
|
293 License that comes with Octave and that also appears in @ref{Copying}. |
|
294 |
|
295 Octave is available on CD-ROM with various collections of other free |
|
296 software, and from the Free Software Foundation. Ordering a copy of |
|
297 Octave from the Free Software Foundation helps to fund the development |
|
298 of more free software. For more information, write to |
|
299 |
|
300 @quotation |
|
301 Free Software Foundation@* |
|
302 59 Temple Place---Suite 330@* |
|
303 Boston, MA 02111--1307@* |
|
304 USA |
|
305 @end quotation |
|
306 |
|
307 Octave is also available on the Internet from |
|
308 @url{ftp://ftp.che.wisc.edu/pub/octave}, and additional information is |
|
309 available from @url{http://www.che.wisc.edu/octave}. |