Anders Logg wrote:
> On Fri, Apr 11, 2008 at 02:24:13PM +0200, Dag Lindbo wrote:
>> Anders Logg wrote:
>>> On Fri, Apr 11, 2008 at 01:34:24PM +0200, Martin Sandve Alnæs wrote:
>>>> 2008/4/11, Anders Logg <[EMAIL PROTECTED]>:
>>>>> On Fri, Apr 11, 2008 at 12:23:15PM +0100, Garth N. Wells wrote:
>>>>>  >
>>>>>  >
>>>>>  > Anders Logg wrote:
>>>>>  > > Which one do we want to use for element access in vectors and
>>>>>  > > matrices. It looks like operator() is now implemented for 
>>>>> uBlasVector,
>>>>>  > > but isn't operator[] more natural to use?
>>>>>  > >
>>>>>  >
>>>>>  > Much the same to me. We've used (.,.) for matrices, so it seems natural
>>>>>  > to use (.) for vectors.
>>>>>  >
>>>>>  > Garth
>>>>>
>>>>>
>>>>> We could use [] for matrices also I guess.
>>>>>
>>>>>  Then it will look the same as numpy.
>>>> It's useful to index vectors with [], since the code will be similar
>>>> for regular arrays.
>>> I forgot something important, namely that operator[] expects exactly
>>> one argument, so we can't do A[i, j] for matrices.
>>>
>>> Maybe then it's better to have () both for vectors and matrices?
>>>
>> Whatever you do with matrices, I don't have an opinion.
>>
>> However, I think operator[] should be present for vectors. One can argue 
>> that it does not _need_ to be there, but the fact is that it _is_ in the 
>> 0.7.2 interface (it worked until yesterday for uBlasVector, but it was 
>> maybe handled by uBlas itself?).
>>
>> /Dag
> 
> Other opinions? Should we have both?
> 
> Since we have A(i, j), it will be expected that x(i) works.
> 
> But it will also be expected that x[i] works (since it works in numpy
> and it has worked before for uBlasVector).
> 

Having both is fine with me. It can be a little confusing in the code 
because one might expect that a(2) and a[2] do different things.

Garth

_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to