You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Sébastien Brisard <se...@m4x.org> on 2012/03/05 08:40:32 UTC

[math] Refactoring of the vector and matrix classes

Hi,
now that CM3 is on its way thanks to Gilles' dedication in the last
weeks, I would like to exhume this long-standing topic. In a few
words, my understanding is that the interfaces for matrices and
vectors are cluttered with many methods which could be externalized,
applying the "Visitor" pattern (or an even more simple variant of
map(f)). This is problably a very simplistic description of a much
wider topic (I remember Ted writing about views of a specific vector),
but this is only a start ;-)

Considering the number of people who already have posted on this (and
related) issue(s) in the past, I have no doubt that this is going to
be an interesting and constructive issue. However, browsing this
morning the ML, I could measure how scattered the information was...
and it each time ended by a decision to postpone. While the ML is a
good place to exchange ideas, I think that we would really need a more
permanent place to centralize the results of these discussions, for
such a wide topic.There are two options for this
1. the Wiki
2. JIRA
The way I see it, this summary should really be that: a statement of
the decisions which were made elsewhere (e.g. on the ML). So, in my
view, it should be clean, exhaustive but concise. I would therefore
suggest the (not-too-well-loved) wiki as a place for holding this
report. Indeed, in my view, a general JIRA ticket would encourage
people to add more comments, which would again clutter the whole
thing. From this Wiki master report, JIRA sub-tasks could be
identified and created.
I would be quite willing to try and summarize what would freely be
discussed on the mailing-list, so that it would imply but little extra
work for other people who take part to the discussions (appart from
checking that I do not write anything silly on the Wiki... which is
very likely to occur).

Refactoring of this package is an important issue, which has been
raised several times in the past, and it gets more and more
complicated to dig out old threads, with information not really well
organized (some of us are "green" committers, who do not have the full
history of the project in mind!). In short, we need to discuss, but we
also need to keep a structured record of these discussions, and I'm
quite happy to be the secretary for these discussions if none other
want to take on this task.

Do you think that this is likely to work?
Do you think this would be like "using a jack-hammer to drive a nail"
(poor translation of a french say, I hope you get the picture...)?
Do you have alternative proposals?

As a starter, please find below a few pointers to threads and tickets
related to the issue raised in the present message (please fill free
to add the many omissions I have undoubtedly made).

Best regards,
Sébastien

http://markmail.org/thread/ao44z3ig2uitzgh3
http://markmail.org/thread/ztcwntgaiwam4ytu
http://markmail.org/thread/vkwe5x2jtozcjkge
http://markmail.org/thread/uocuuxy2i2qpyt33
http://markmail.org/thread/j4xjdtchpw33xpgr
MATH-656
MATH-643
MATH-628
MATH-626
MATH-608


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Sébastien Brisard <se...@m4x.org>.
Hi,
>
> Dear all,
> you might have seen the creation of a new ticket (MATH-765). This is
> going to be the place where our discussions regarding the present
> issue will be summarized. For the time being, this page is largely
> work in progress, so I would encourage people to ***REFRAIN FROM
> COMMENTING*** on the ticket for the time being. There is a lot of
> things I need to write before this becomes a useful page
> - finish comparison of RealVector and RealMatrix APIs,
> - summarize "historical" discussions (listed in the root message of
> the present thread).
>
> I'll let you know once I'm satisfied with the above tasks. Besides,
> I'm not sure that discussions should take place on the ticket itself,
> I'm really worried it becomes too cluttered. I personally would prefer
> we discuss on the ML, and the conclusions are summarized on the JIRA
> ticket. This is of course open to discussion.
>
> Best regards,
> Sébastien
>
Following my previous message, I took the liberty to delete
"design-oriented" comments already posted on MATH-765. Here is a quote
of the comment posted by Leandro

{quote}
Since inner product should be implemented , shouldnt a user be able to
change a matrix representation in a given base ? . Something along the
lines of :

RealMatrix changeBase( RealMatrix newBase )

Ohhh .. btw , calculating a Matrix's trace could prove usefull too ...

double trace() or static double trace( RealMatrix m )
{quote}

We can already answer to the second question: getTrace() already
exists, even if this method is not (yet) listed in the JIRA ticket.

Best regards
Sébastien


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Sébastien Brisard <se...@m4x.org>.
Dear all,
you might have seen the creation of a new ticket (MATH-765). This is
going to be the place where our discussions regarding the present
issue will be summarized. For the time being, this page is largely
work in progress, so I would encourage people to ***REFRAIN FROM
COMMENTING*** on the ticket for the time being. There is a lot of
things I need to write before this becomes a useful page
- finish comparison of RealVector and RealMatrix APIs,
- summarize "historical" discussions (listed in the root message of
the present thread).

I'll let you know once I'm satisfied with the above tasks. Besides,
I'm not sure that discussions should take place on the ticket itself,
I'm really worried it becomes too cluttered. I personally would prefer
we discuss on the ML, and the conclusions are summarized on the JIRA
ticket. This is of course open to discussion.

Best regards,
Sébastien


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Sébastien Brisard <se...@m4x.org>.
Hi Gilles,

2012/3/7 Gilles Sadowski <gi...@harfang.homelinux.org>:
> Hi Sébastien.
>
> Since you don't like Wiki ;-) and given the unsuitability of the web site
> for publishing "updating" comments, I think that the most flexible platform
> is JIRA; you can use its relationship between issues feature to create a
> good sense of priority.
>
Please note that I really wanted to give it a chance, though. But I'm
starting to see why no one uses it... I agree, JIRA will be my final
choice... Sorry for all the noise!

>
> Also, you can edit and expand the "description" part of the report according
> to the evolution of the comments; hence, a newcomer will get the latest view
> on the subject. In that respect, maybe that the issue title should indeed
> reflect clearly that it is an ongoing design dicussion (and not a bug report
> where, on the contrary, it might be better that the description is untouched,
> and describes the initial, unfixed, state).
>
Good idea. I had the same concern with updating the description of the
ticket. But if we put a big warning on the nature of this ticket, that
would be all right. My other concern is the discussion itself. Do you
think it should take place within JIRA (with the risk that the ticket
gets quickly packed with messages), or here on the ML, with frequent
updates of the ticket description?

>
> Regards,
> Gilles
>

I'm sorry I'm wasting so much of everyone else's time to discuss how
we should discuss a general topic... I hope we will get down to the
real thing soon.

Best regards,
Sébastien


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Gilles Sadowski <gi...@harfang.homelinux.org>.
Hi Sébastien.

Since you don't like Wiki ;-) and given the unsuitability of the web site
for publishing "updating" comments, I think that the most flexible platform
is JIRA; you can use its relationship between issues feature to create a
good sense of priority.
Also, you can edit and expand the "description" part of the report according
to the evolution of the comments; hence, a newcomer will get the latest view
on the subject. In that respect, maybe that the issue title should indeed
reflect clearly that it is an ongoing design dicussion (and not a bug report
where, on the contrary, it might be better that the description is untouched,
and describes the initial, unfixed, state).


Regards,
Gilles


On Wed, Mar 07, 2012 at 11:32:59AM +0000, sebb wrote:
> 2012/3/7 Sébastien Brisard <se...@m4x.org>:
> > Hi,
> >
> >>> If you like the Wiki system and you want to lead the work, then use your
> >>> favorite tool.
> >>>
> >
> > I've tried to play around with the Wiki system, and it certainly is
> > *not* my favorite tool... So another idea would be to keep the report
> > on the refactoring as a page in the website of Commons-Math (under the
> > main heading "Design issues").
> >
> > One good side effect, consistent with the requirement of releasing
> > more often, would be to force us to deploy the site more often ;).
> 
> Unless the code is re-released there's generally little need to update the site.
> 
> > Do you think I can create such a page on the website?
> 
> -1, that's not a suitable use for the web-site, which is primarily for
> end-users, not developers.
> 
> Also, it's not trivial releasing the Math website, and until svnpubsub
> is implemented there is a long delay before the changes become
> visible.
> 
> > Sébastien
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > For additional commands, e-mail: dev-help@commons.apache.org
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by sebb <se...@gmail.com>.
2012/3/7 Sébastien Brisard <se...@m4x.org>:
> Hi,
>
>>> If you like the Wiki system and you want to lead the work, then use your
>>> favorite tool.
>>>
>
> I've tried to play around with the Wiki system, and it certainly is
> *not* my favorite tool... So another idea would be to keep the report
> on the refactoring as a page in the website of Commons-Math (under the
> main heading "Design issues").
>
> One good side effect, consistent with the requirement of releasing
> more often, would be to force us to deploy the site more often ;).

Unless the code is re-released there's generally little need to update the site.

> Do you think I can create such a page on the website?

-1, that's not a suitable use for the web-site, which is primarily for
end-users, not developers.

Also, it's not trivial releasing the Math website, and until svnpubsub
is implemented there is a long delay before the changes become
visible.

> Sébastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Sébastien Brisard <se...@m4x.org>.
Hi,

>> If you like the Wiki system and you want to lead the work, then use your
>> favorite tool.
>>

I've tried to play around with the Wiki system, and it certainly is
*not* my favorite tool... So another idea would be to keep the report
on the refactoring as a page in the website of Commons-Math (under the
main heading "Design issues").

One good side effect, consistent with the requirement of releasing
more often, would be to force us to deploy the site more often ;).

Do you think I can create such a page on the website?

Sébastien


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Sébastien Brisard <se...@m4x.org>.
All right, then,
>
> +1
>
> If you like the Wiki system and you want to lead the work, then use your
> favorite tool.
>

I will skim through the list of posts and tickets I've tried to build
up, and do my best to come up with a first wiki page. Meanwhile, if
any of you would like to make an addition to this list (my search
through the ML is probably not exhaustive), please feel free to do you
in this thread.
Best regards,
Sébastien


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: [math] Refactoring of the vector and matrix classes

Posted by Gilles Sadowski <gi...@harfang.homelinux.org>.
Hi Sébastien.

> [...]
> 
> Refactoring of this package is an important issue, which has been
> raised several times in the past, and it gets more and more
> complicated to dig out old threads, with information not really well
> organized (some of us are "green" committers, who do not have the full
> history of the project in mind!). In short, we need to discuss, but we
> also need to keep a structured record of these discussions, and I'm
> quite happy to be the secretary for these discussions if none other
> want to take on this task.

+1

If you like the Wiki system and you want to lead the work, then use your
favorite tool.

> [...]

Best regards,
Gilles

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org