This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
Re: GSL API design flaws
Brian Gough wrote:
> Our design document is available from development CVS repository.
> See
>
> http://sourceware.cygnus.com/gsl/
>
> for details.
Thanks.
I found gsl-design.texi and read it.
It asks some of my questions
but it doesn't answer many of them.
E. Robert Tisdale writes:
> Who is supposed to use the GSL?
> Numerical class library developers?
> Or numerical application programmers?
> Amateur numerical application programmers
> who write code for their own use?
> Or professional numerical application programmers
> who write code for other people to use?
> Mathematicians, scientists and engineers
> who use the existing API to write application programs?
> Or computer scientists who write their own wrappers
> around the GSL API.
>
> Why does the GSL exist?
> Is it just a low cost alternative to existing numerical libraries?
> Or is it supposed to contribute to "the state of the art"
> in numerical computing somehow?
> Why didn't you just implement an existing standard API?
> Why would numerical application programmers
> choose the GSL over other numerical class libraries?
>
> Can I write my own proprietary version of the GSL,
> copyright it and distribute it for profit
> without disclosing any of my source code?
> Who pays for the development and maintenance of the GSL?
> Is all of the work being done by volunteers?
> Who provides support for the GSL?
> If something breaks, do I have to fix it myself?
> Or do I have to wait until a volunteer can fix it for me?
>
> Who is supposed to use the GSL?
> Numerical class library developers?
> Or numerical application programmers?
> Amateur numerical application programmers
> who write code for their own use?
> Or professional numerical application programmers
> who write code for other people to use?
> Mathematicians, scientists and engineers
> who use the existing API to write application programs?
> Or computer scientists who write their own wrappers
> around the GSL API.
>
> Why does the GSL exist?
> Is it just a low cost alternative to existing numerical libraries?
> Or is it supposed to contribute to "the state of the art"
> in numerical computing somehow?
> Why didn't you just implement an existing standard API?
> Why would numerical application programmers
> choose the GSL over other numerical class libraries?
>
> Can I write my own proprietary version of the GSL,
> copyright it and distribute it for profit
> without disclosing any of my source code?
> Who pays for the development and maintenance of the GSL?
> Is all of the work being done by volunteers?
> Who provides support for the GSL?
> If something breaks, do I have to fix it myself?
> Or do I have to wait until a volunteer can fix it for me?
>
> Was the GSL designed from the top down
> starting with a clear description of the API
> then designing the implementation around it?
> Or was the GSL designed from the bottom up
> designing the API around the implementation?
>
> Precisely what Abstract Data Type (ADT) does the GSL API support?
> I can't find a concise definition anywhere in the documentation.
> The ADT appears to support
>
> strided real and complex multidimensional views
> of one dimensional arrays of real numbers
>
> except that it appears to be restricted to
> one dimensional arrays of at least one element,
> vector and matrix views, positive strides,
> and unit stride down the rows of matrix views.
> What are the reasons for each of these restrictions?
>
> What language bindings does the GSL API support?
> It appears that the GSL API supports only ANSI C.
>
> Which computer architectures does the API support?
> Since it is always possible to obtain a pointer to the base type,
> I don't think the GSL will support multiple memory spaces
> like you find on Digital Signal Processing (DSP) chips
> any multiprocessor systems with private local memory.
>
> Why doesn't the GSL API hide
> the actual data representation for vector and matrix views?
> Once application programmers begin to use and depend upon
> the GSL API, it will be practically impossible
> to change the data representation without changing
> all of the existing application source code.
>
> Why doesn't the GSL API use the function naming conventions
> supported by standard vector and matrix class libraries?
>
> Why doesn't the GSL API support a full complement
> of vector and matrix class arithmetic operations
> like the gsl_complex number classes do?