# [Numpy-discussion] Some numpy statistics

Robert Kern robert.kern@gmail....
Wed Dec 10 02:32:31 CST 2008

```On Wed, Dec 10, 2008 at 02:22, Charles R Harris
<charlesr.harris@gmail.com> wrote:
>
>
> On Wed, Dec 10, 2008 at 12:55 AM, <robert.kern@gmail.com> wrote:
>>
>> On Wed, Dec 10, 2008 at 01:49, Charles R Harris
>> <charlesr.harris@gmail.com> wrote:
>> > Hi All,
>> >
>> > I bumped into this while searching for something else:
>> > http://www.ohloh.net/p/numpy/analyses/latest
>>
>> -14 lines of Javascript?
>
> Well, they have scipy mostly written in C++ and davidc as a C developer with
> a 29000 line commit ;) The code analysis isn't quite perfect and I think
> there are some bugs in computing the statistics. But it's kind of
> interesting anyway.

There are bugs, and then there are bugs. It seems like an invariants
"numlines >= 0" should pertain even with dodgy language
identification. I simply don't know what operations they would do to
get negative numbers.

In any case, sloccount tells me that most of scipy *is* C++. The
generated sparsetools sources are quite large in addition to all of
the Blitz sources.

SLOC    Directory       SLOC-by-Language (Sorted)
177304  sparse          cpp=134410,ansic=22394,fortran=12780,python=7720
96740   weave           cpp=82265,python=14244,ansic=231
39321   special         fortran=19749,ansic=16888,python=2684
18074   integrate       fortran=15871,python=1156,ansic=1047
14472   interpolate     fortran=10564,python=2493,ansic=1210,cpp=205
12471   ndimage         python=6242,ansic=6229
11431   optimize        fortran=5931,python=2864,ansic=2636
11390   odr             fortran=9380,ansic=1192,python=818
9951    stats           python=8526,fortran=1425
6801    signal          ansic=3934,python=2867
5878    fftpack         fortran=3973,python=1462,ansic=443
5756    io              python=4987,ansic=769
4672    spatial         python=2731,ansic=1941
4608    cluster         python=2659,ansic=1949
4227    linalg          python=3605,fortran=604,ansic=18
1530    lib             python=1182,fortran=324,ansic=24
1471    stsci           ansic=976,python=495
1125    maxentropy      python=1125
940     misc            python=940
494     constants       python=494
160     top_dir         python=160
3       linsolve        python=3

Totals grouped by language (dominant language first):
cpp:         216880 (50.58%)
fortran:      80601 (18.80%)
python:       69457 (16.20%)
ansic:        61881 (14.43%)

Total Physical Source Lines of Code (SLOC)                = 428,819
Development Effort Estimate, Person-Years (Person-Months) = 116.12 (1,393.47)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 3.26 (39.15)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 35.60
Total Estimated Cost to Develop                           = \$ 15,686,619
(average salary = \$56,286/year, overhead = 2.40).
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.
SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to
redistribute it under certain conditions as specified by the GNU GPL license;
see the documentation for details.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
-- Umberto Eco
```