1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
Parts of \fudgit\ were built from some existing facilities. I would
like to give full credits for ideas or even segments of code that
have been taken from the following sources.
$\bullet$ For parts of the user interface:
The help facility and the line editor were taken and adapted
respectively from \gnuplot, and \readline. \readline\ was written by
Brian Fox. The help facility is originally from John D. Johnson.
$\bullet$ For the C-calculator:
The calculator is inspired from HOC calculator which was debugged
and largely augmented to support vector algebra, memory management
and extra operators. The source of the basic program is reproduced
for educational purposes in {\it The Unix Programming Environment}
by Brian W. Kernighan and Rob Pike, Prentice-Hall (1984).
$\bullet$ For the fitting functions:
Some of the included fitting routines are based on the algorithms
found in chapter 14 of {\it Numerical Recipes in C} by W. H. Press,
B. P. Flannery, S. A. Teukolsky and W. T. Vettering, Cambridge
University Press (1988), of which some were in turn adapted from
LINPACK. I had to adapt all the algorithms to include elegant error
recovery and to perform all calculations on vectors outside the
fitting loops, since their implementation would not permit the use
of run-time user selectable functions. \fudgit\ would not have been
possible without the valuable help of that book. Since I strongly
recommand that you have a copy of a fitting book, I strongly
suggest you have a copy of this one. Not only this book will
describe all the methods used in \fudgit\ but it will also give you
unvaluable insights to get to the state of the art of fitting.
These routines are copyrighted and cannot be separated from \fudgit.
Copyright (C) 1987, 1988 Numerical Recipes Software. Reproduced by
permission from the book {\it Numerical Recipes: The Art of
Scientific Computing} published by Cambridge University Press.
$\bullet$ For the fft routine:
The fft routine was first derived from an original Pascal version
written in {\it Simple Calculations with Complex Numbers} by David
Clark in DDJ 10/84 and then translated to C by R. Hellman
(02/21/86). I rewrote the C version to use vectors of alternated
double real and imaginary instead of the original (slow) vector of
pointers to complex structures. I also merged all functions in one
to prevent unnecessary function calls. I was astonished to see that
the resulting version was almost identical to the one found in
Numerical Recipes with the exception of a trigonometric recursion.
In conclusion, given an algorithm, I think that is is a hard task
to try to write a code much better than the one found there. This
is normal since the space of code possibilities gets narrower as
the constraints (optimization) acting on an implementation in a
given language are increased. The one included is from N.R. which
was adapted from N. Brenner.
Copyright (C) 1987, 1988 Numerical Recipes Software. Reproduced by
permission from the book {\it Numerical Recipes: The Art of
Scientific Computing} published by Cambridge University Press.
$\bullet$ For the help file:
I would like to thank Ross Thompson for proofreading part of the
documentation and also for giving me constructive feedback in
course of the program development.
$\bullet$ For the IRIX supported dynamic loading package:
The {\tt dl} Dynamic Loading package is from Jack Jansen
$<$Jack.Jansen@cwi.nl$>$ from the {\it Centrum voor Wiskunde en
Informatica}. This package only works on IRIX for now.
$\bullet$ For the SUNOS, ULTRIX supported dynamic loading package:
The implementation of {\tt dl} for SUNOS and ULTRIX is from Guido
van Rossum $<$guido@cwi.nl$>$ from the {\it Centrum voor Wiskunde en
Informatica}. I modified part of it to allow multiple routine
loading from the same object. The other part of the puzzle is the
{\tt dld} loader from Wilson Ho $<$how@cs.ucdavis.edu$>$ which is based
on GNU ld(1) and is under GNU license.
$\bullet$ For compilers not having {\tt alloca()}:
The included public domain version of alloca is from D. A. Gwyn.
$\bullet$ For systems not having {\tt putenv()}:
The version of putenv was adapted from Dave Taylor's elm who
adapted it from cnews.
$\bullet$ For a lot of ideas:
Many thanks to Steve Hornes for stimulating e-mail discussions.
Steve is responsible for the idea of implementing dynamic loading
in the final development of \fudgit.
$\bullet$ For the port to linux:
The port to linux was made by Thomas Koenig
$<$ig25@rz.uni-karlsruhe.de$>$. Thanks a lot Thomas!
$\bullet$ For the rest of the code:
Copyright (C) 1993 Martin-D. Lacasse
See the Copyrights file for more detail, or the `README' help topic.
Permission to use, copy, and distribute this software and its
documentation for any peaceful purpose and without fee is hereby
granted, provided that the above notices appear in all copies and
that both those notices and this permission notice appear in
supporting documentation. No part of this can be used for commercial
purposes.
Send bugs, comments or suggestions to
$<$isaac@physics.mcgill.ca$>$.
Disclaimer:
This software is provided {\it as is} without express or implied warranty.
|