Bug#856705: [dkogan at debian.org: Bug#856705: graywolf: License violation]

Tim Edwards tim at opencircuitdesign.com
Mon Mar 6 03:22:51 UTC 2017


Hello Dima,

> Hi. Yeah, there're plenty of other (and better) SVD implementations.
> They won't be a drop-in replacement, however because numerical recipes
> uses a ridiculous matrix storage scheme:
>
>      typedef struct {
>          INT    rows ;
>          INT    columns ;
>          DOUBLE **m ;
>      } YMBOX, *YMPTR ;
>
> I.e. each row (or column) of a matrix is stored in a separate chunk of
> (usually dynamically-allocated) memory. This is stupid, and no other
> library would do it this way. So to use other implementations you might
> need to write a shim to convert formats. If you find a better way,
> please let me know.

I don't think it's that bad.  In graywolf, the matrix computations
appear to be restricted to exactly one routine (adapt_wire_estimator),
which is about 200 lines of code that create some matrices, fill them,
call a few standard matrix routines (multiply, add, etc.), then call
svd_solve.  It all appears to be self-contained, so as long as I can
do the same matrix functions with another library, it should be simple
to replace the Numerical Recipes code.  In other words, matrices aren't
used anywhere else in graywolf.  The matrices are created for the sole
purpose of running svd_solve, and then freed.

					---Tim

+--------------------------------+-------------------------------------+
| R. Timothy Edwards (Tim)       | email: tim at opencircuitdesign.com    |
| Open Circuit Design            | web:   http://opencircuitdesign.com |
| 19412 Cissel Manor Drive       | phone: (301) 528-5030               |
| Poolesville, MD 20837          | cell:  (408) 828-8212               |
+--------------------------------+-------------------------------------+



More information about the debian-science-maintainers mailing list