public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: "Robert G. Brown" <rgb@phy.duke.edu>
To: Gerard Jungman <jungman@lanl.gov>
Cc: GSL Discuss Mailing List <gsl-discuss@sourceware.org>
Subject: Re: GSL 2.0 roadmap (one man's view)
Date: Wed, 16 Sep 2009 02:48:00 -0000	[thread overview]
Message-ID: <alpine.LFD.2.00.0909152238020.3210@lilith> (raw)
In-Reply-To: <1253062147.23092.970.camel@manticore.lanl.gov>

On Tue, 15 Sep 2009, Gerard Jungman wrote:

> On Mon, 2009-09-07 at 16:06 +0100, Brian Gough wrote:
>> At Thu, 27 Aug 2009 17:15:39 -0600,
>> Gerard Jungman wrote:
>>>   The important notion of slicing is (partially) implemented in GSL
>>>   in terms of the "view" concept. One can construct submatrices as
>>>   views of given matrices, change the stride of vector data by
>>>   creating vector views, etc. But there are clear flaws in the
>>>   design. The design does not express the obvious idea that
>>>   a "view" is itself a "thing", simply because the view classes
>>>   do not have an inheritance relationship to the main classes.
>>
>> I agree that the scheme is not as elegant as it could be in other
>> languages.  The view types are forced by the nature of const in C --
>> it's not possible to place the views and vectors/matrices on an equal
>> footing and preserve constness, unfortunately.  If there is a way
>> round that, I'm not aware of it.
>
>> Originally a view was essentially a vector with another name, but
>> there was no barrier to writing expressions which discarded constness
>> without any complaint from the compiler.  To prevent that in C, the
>> type had to be "wrapped" in a struct which is why one has to write
>> &view.vector or &view.matrix to access it.
>
>
> I really don't understand this. In my head, I can see a solution
> which has nothing to do with const-ness issues. I think it would
> just work. I could type it in and we could look at it. It definitely
> involves changing the way vector and matrix are done, but I don't
> think it would be a big hairy deal.
>
>
> On Mon, 2009-09-07 at 14:21 -0400, Robert G. Brown wrote:
>>
>> The biggest issue would/will probably be rationalizing the views of
>> vector and matrix so they are sufficiently portable and easy to e.g.
>> pass in and out of ODE solvers and everything else consistently.
>
> This is right to the point. It's exactly what I'm getting at.
> There is just something brain-damaged about the way it is done now.

Bless you.  And remember, it would be really nice if there was a certain
scalability in dimension.  The world doesn't stop at *a, **b -- there is
***c, ****d, etc where a number of sciences need at least through six
dimensions and back when we were kicking this around on list three or
four years ago somebody (doing relativity?) said that they use eight or
nine.  Tensors, especially tensors that don't "have" to be square, are
very useful.

In my own code, I have used at least ****d tensors that were allocated
as a single data block and the indices repacked into the tensor and then
cast to a type.  You can bass the data block to an ODE solver as a
vector, but you can write the actual deriv routine using the tensor
pointer, which means that it is actually intelligible and debuggable
without four layers of index arithmetic wrapped up on some sort of macro
or horrorshow code.

I don't remember if I mentioned it before, but multidimensional
integration (on spaces that may or may not be flat of dimension greater
than or equal to two) would be a lovely addition to the next release as
well.  There's C++ code out there (Hint) and I did a port of one of the
Hint routines at one time, but e.g. integration over a sphere of
functions with Y_lm's in them is another extremely common problem in
math and physics, and spherical domains in spherical coordinates do not
map well into nested one-D quadrature routines...

    rgb

>
> --
> G. Jungman
>
>

Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb@phy.duke.edu


  reply	other threads:[~2009-09-16  2:48 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-30 17:07 ode-initval implicit solvers and development Tuomo Keskitalo
2008-10-01 18:29 ` Brian Gough
2008-10-09 13:22 ` Brian Gough
2008-11-02 17:35 ` Tuomo Keskitalo
2008-11-03 18:09   ` Brian Gough
2009-01-24 11:52     ` Tuomo Keskitalo
2009-02-01 17:01       ` Brian Gough
2009-02-02 17:05         ` Tuomo Keskitalo
2009-03-01 14:37           ` Tuomo Keskitalo
2009-03-03 16:34             ` Brian Gough
2009-03-05 19:47               ` Tuomo Keskitalo
2009-03-05 19:54                 ` Heikki Orsila
2009-03-06 20:03                 ` Brian Gough
2009-04-05 12:28             ` Tuomo Keskitalo
2009-05-01 14:05             ` Tuomo Keskitalo
2009-05-04 11:23               ` Brian Gough
2009-05-08 10:51               ` Brian Gough
2009-08-06 13:51                 ` GSL 2.0 roadmap Tuomo Keskitalo
2009-08-21 20:42                   ` Brian Gough
2009-08-27 11:42                     ` Tuomo Keskitalo
2009-08-27 12:51                       ` Robert G. Brown
2009-08-28 13:57                         ` Jordi Burguet Castell
2009-08-27 17:13                           ` Robert G. Brown
2009-08-28 13:58                       ` Brian Gough
2009-08-27 23:10                     ` Gerard Jungman
2009-08-27 23:13                       ` GSL 2.0 roadmap (one man's view) Gerard Jungman
2009-08-28 13:58                         ` Brian Gough
2009-09-16  0:43                           ` Gerard Jungman
2009-09-03 19:37                         ` Brian Gough
2009-09-16  0:44                           ` Gerard Jungman
2009-09-07 15:10                         ` Brian Gough
2009-09-16  0:47                           ` Gerard Jungman
2009-09-27  8:03                             ` new double precision data structure? Tuomo Keskitalo
2009-09-28  8:44                               ` James Bergstra
2009-09-28 15:48                                 ` Tuomo Keskitalo
2009-10-16 13:59                                   ` Brian Gough
2009-09-29 18:38                               ` Gerard Jungman
2009-09-07 15:10                         ` GSL 2.0 roadmap (one man's view) Brian Gough
2009-09-16  0:46                           ` Gerard Jungman
2009-09-16  2:48                             ` Robert G. Brown [this message]
2009-09-17 19:14                             ` Brian Gough
2009-09-07 15:10                         ` Brian Gough
2009-09-16  0:46                           ` Gerard Jungman
2009-09-17 20:12                             ` Brian Gough
2009-09-07 15:10                         ` Brian Gough
2009-09-16  0:44                           ` Gerard Jungman
2009-09-17 20:12                             ` Brian Gough
     [not found]                           ` <645d17210909090818u474f32f0q19a6334578b9f02c@mail.gmail.com>
2009-09-17 19:14                             ` Brian Gough
2009-09-07 15:10                         ` Brian Gough
2009-09-07 15:34                           ` Rhys Ulerich
2009-09-07 18:21                             ` Robert G. Brown
2009-09-16  0:47                           ` Gerard Jungman
2009-09-18  3:51                             ` column-major Z F
2009-09-21 12:08                               ` column-major Brian Gough
2009-09-07 15:10                         ` GSL 2.0 roadmap (one man's view) Brian Gough
2009-09-16  0:45                           ` Gerard Jungman
2009-09-20  9:36                             ` Tuomo Keskitalo
2009-09-20 13:23                               ` Robert G. Brown
2009-09-20 15:31                                 ` Rhys Ulerich
2009-09-20 16:19                                   ` Robert G. Brown
2009-09-21 15:13                                   ` Brian Gough
2009-09-20 15:08                               ` Rhys Ulerich
2009-09-21 12:08                               ` Brian Gough
2009-08-28 13:58                     ` GSL 2.0 roadmap Brian Gough

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LFD.2.00.0909152238020.3210@lilith \
    --to=rgb@phy.duke.edu \
    --cc=gsl-discuss@sourceware.org \
    --cc=jungman@lanl.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).