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