Hello,
your ideas seem quite promising, I look forward to see your code. :-)
On 10/06/2009 11:34 PM, Gerard Jungman wrote:
Q6. More a statement than a question: We should be more explicit
about the levelization of the design. This means expressing
the dependence of components clearly. For example, matrix
...
I don't think this is a problem for machine solution. It's up to
us to decide how the thing is organized. What depends on what,
which parts are foundational, and which parts are built on
top of those? Then we should organize the code so it
expresses that.
I run a few ad hoc shell commands described below, to find the
interdependencies within current GSL directories. Even though the
results are probably not complete nor fully correct, this might provide
a starting point for the organization?
-----
Lowest level ("many" dependencies): blas, block, cblas, complex, vector,
err, ieee_utils
Intermediate level (at least one other directory seems to use these):
eigen, histogram, integration, linalg, min, permutation, poly, randist,
rng, roots, sort, statistics
Highest level (no other directory seems to use these): bspline, cdf,
cheb, combination, const, deriv, dht, diff, fit, fft, interpolation,
monte, multifit, multimin, multiroots, ntuple, ode-initval, qrng, siman,
specfunc, sum, wavelet
-----
I got to this result by running the following commands with zsh in
gsl-1.13 root directory, and by ogling the resulting
gsl-dependencies.txt file.
for f in `find -type d`; do; for g in `grep include $f/*.h $f/*.c`; do;
echo "$f : $g" >> out; done; done;
grep ': <' <out | sort | uniq | egrep -v 'doc/examples' >
gsl-dependencies-all.txt
for f in `find -type d | perl -pe 's/\.\///' | sort`; do; echo "$f is
used by:" >> gsl-dependencies.txt; grep $f gsl-dependencies-all.txt |
egrep -v "^\.\/$f" >> gsl-dependencies.txt; echo ""
>>gsl-dependencies.txt; done;
--
[email protected]
http://iki.fi/tuomo.keskitalo