Hi,
> No, they are pointers. Scalar pointers, but pointers nonetheless.
Yes, in Fortran terms. I meant for practical purposes, they are more dynamic
then allocatables, but less so then array pointers :)
> The most obvious simple solution is to operate on them in a context
> where they are not pointers; e.g. where they are (nonpointer) dummy
> arguments.
Yes, but what if I have 20 such arrays I need? How am I to encapsulate them
and avoid passing huge numbers of arguments all the time? I really have no
ideas at all other then using long argument lists for all computationally
intensive parts...What about OOP, where derived types are the basic
encapsulation method.
> It is one of the inescapable facts of life that once you introduce
> pointers into the equation, optimisation gets a lot more difficult and
> it usually impossible to do as good a job as when pointers are not
> present.
Not necessarily, I think. In most of my programs I can guarantee certain
properties of the pointers which are essential to optimization, yet the
standard provides me no way of expressing these properties. Allocatables are
nice in this respect, but they are unfortunately too restrictive for many of
my needs.
And of course the committee should care about that--it has so far! Language
features should have at least one "efficient" implementation, and the
language should provide a way to express the calculations in such a way that
optimizations are easier and guaranteed to work (rather then performing 100
run-time tests) for all "common" problems.
And I do report these things to my vendor in separate e-mails to the
developers...
Thanks anyway,
Aleksandar
--
__________________________________
Aleksandar Donev
Complex Materials Theory Group (http://cherrypit.princeton.edu/)
Princeton Materials Institute & Program in Applied and Computational Mathematics
@ Princeton University
Address:
419 Bowen Hall, 70 Prospect Avenue
Princeton University
Princeton, NJ 08540-5211
E-mail: [log in to unmask]
WWW: http://atom.princeton.edu/donev
Phone: (609) 258-2775
Fax: (609) 258-6878
__________________________________
|