This is the mail archive of the mailing list for the GSL project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: some general questions


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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]