Home for the colt fork

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Home for the colt fork

Benson Margulies
Mahout now has a fork of a portion of the 'category A' portion of the
CERN colt library forked. The Mahout fork is, of course, in the Mahout
tree under a Mahout Java package and Maven triple.

I want to use the collections classes from Mahout as the core to a new
set of commons-primitives classes that do the useful things that GNU
Trove does.

The classes I want to start from depend on the classes that are in the
Mahout fork.

As a temporary expedient, I can depend on their there. However, I
submit that it would be more better if the mathematical code were in
commons-math. Was this option explored?

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Home for the colt fork

James Carman
I wouldn't like to see a dependency on mahout code in a "commons"
library.  That seems kind of backwards.  If Mahout wants to offload
this stuff, we can move it into a library in commons (which is
typically how stuff used to happen in Jakarta).

On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <[hidden email]> wrote:

> Mahout now has a fork of a portion of the 'category A' portion of the
> CERN colt library forked. The Mahout fork is, of course, in the Mahout
> tree under a Mahout Java package and Maven triple.
>
> I want to use the collections classes from Mahout as the core to a new
> set of commons-primitives classes that do the useful things that GNU
> Trove does.
>
> The classes I want to start from depend on the classes that are in the
> Mahout fork.
>
> As a temporary expedient, I can depend on their there. However, I
> submit that it would be more better if the mathematical code were in
> commons-math. Was this option explored?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Home for the colt fork

Benson Margulies
We can't possibly have a dependency on Mahout in the long term. Either
we all go shares on code in some other piece of commons, or we end up
with two forks, which would be sad.

On Tue, Dec 8, 2009 at 8:33 AM, James Carman <[hidden email]> wrote:

> I wouldn't like to see a dependency on mahout code in a "commons"
> library.  That seems kind of backwards.  If Mahout wants to offload
> this stuff, we can move it into a library in commons (which is
> typically how stuff used to happen in Jakarta).
>
> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <[hidden email]> wrote:
>> Mahout now has a fork of a portion of the 'category A' portion of the
>> CERN colt library forked. The Mahout fork is, of course, in the Mahout
>> tree under a Mahout Java package and Maven triple.
>>
>> I want to use the collections classes from Mahout as the core to a new
>> set of commons-primitives classes that do the useful things that GNU
>> Trove does.
>>
>> The classes I want to start from depend on the classes that are in the
>> Mahout fork.
>>
>> As a temporary expedient, I can depend on their there. However, I
>> submit that it would be more better if the mathematical code were in
>> commons-math. Was this option explored?
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Home for the colt fork

Ted Dunning
Actually, the reason that we have Colt in Mahout is it has proven impossible
to get changes into commons math.  We really, really wanted to use commons
math rather than have our own linear algebra package, but it just proved
impossible and we didn't want to wait forever.

If that problem were solved, then it would be great to depend on commons
math.  If that problem isn't solved, then there is no way to depend on
commons math.

On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]>wrote:

> We can't possibly have a dependency on Mahout in the long term. Either
> we all go shares on code in some other piece of commons, or we end up
> with two forks, which would be sad.
>
> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <[hidden email]>
> wrote:
> > I wouldn't like to see a dependency on mahout code in a "commons"
> > library.  That seems kind of backwards.  If Mahout wants to offload
> > this stuff, we can move it into a library in commons (which is
> > typically how stuff used to happen in Jakarta).
> >
> > On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <[hidden email]>
> wrote:
> >> Mahout now has a fork of a portion of the 'category A' portion of the
> >> CERN colt library forked. The Mahout fork is, of course, in the Mahout
> >> tree under a Mahout Java package and Maven triple.
> >>
> >> I want to use the collections classes from Mahout as the core to a new
> >> set of commons-primitives classes that do the useful things that GNU
> >> Trove does.
> >>
> >> The classes I want to start from depend on the classes that are in the
> >> Mahout fork.
> >>
> >> As a temporary expedient, I can depend on their there. However, I
> >> submit that it would be more better if the mathematical code were in
> >> commons-math. Was this option explored?
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
Ted Dunning, CTO
DeepDyve
Reply | Threaded
Open this post in threaded view
|

[math] getting changes included into commons-math (was Re: Home for the colt fork)

Luc Maisonobe
Ted Dunning a écrit :
> Actually, the reason that we have Colt in Mahout is it has proven impossible
> to get changes into commons math.  We really, really wanted to use commons
> math rather than have our own linear algebra package, but it just proved
> impossible and we didn't want to wait forever.

If you really, really wants to use commons math and want changes to be
included, contribute them.

I think the only change that was proposed and not done because of lack
of consensus was the inclusion of MTJ (and I don't consider the
discussion closed on that topic either, so it may still happen some
day). All the other changes that are desired are simply lacking someone
to do the work. There were proposals to extend the linear algebra API,
proposals to add more support for sparse matrices, proposals to get
partial decomposition ... But sparse contributions (pun intended).

I try to do what I can, but as you have probably seen have been rather
silent since 2.0 release. For my part, I really, really need help. I
would like to fix the problems in the eigen decomposition and SVD but
need a good kick to get on it, and having only requests and no help is
not really motivating.

Luc

>
> If that problem were solved, then it would be great to depend on commons
> math.  If that problem isn't solved, then there is no way to depend on
> commons math.
>
> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]>wrote:
>
>> We can't possibly have a dependency on Mahout in the long term. Either
>> we all go shares on code in some other piece of commons, or we end up
>> with two forks, which would be sad.
>>
>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <[hidden email]>
>> wrote:
>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>> this stuff, we can move it into a library in commons (which is
>>> typically how stuff used to happen in Jakarta).
>>>
>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <[hidden email]>
>> wrote:
>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>> CERN colt library forked. The Mahout fork is, of course, in the Mahout
>>>> tree under a Mahout Java package and Maven triple.
>>>>
>>>> I want to use the collections classes from Mahout as the core to a new
>>>> set of commons-primitives classes that do the useful things that GNU
>>>> Trove does.
>>>>
>>>> The classes I want to start from depend on the classes that are in the
>>>> Mahout fork.
>>>>
>>>> As a temporary expedient, I can depend on their there. However, I
>>>> submit that it would be more better if the mathematical code were in
>>>> commons-math. Was this option explored?
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Benson Margulies
This is interesting. We have a raft of mathematically qualified
committers on Mahout, and this message asking for help on
commons-math, and a raft of code marooned at mahout that wants to be
in commons math. If I were one of those mathematically competant
individuals, I'd be off attaching a patch or three to a JIRA or two
...

On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]> wrote:

> Ted Dunning a écrit :
>> Actually, the reason that we have Colt in Mahout is it has proven impossible
>> to get changes into commons math.  We really, really wanted to use commons
>> math rather than have our own linear algebra package, but it just proved
>> impossible and we didn't want to wait forever.
>
> If you really, really wants to use commons math and want changes to be
> included, contribute them.
>
> I think the only change that was proposed and not done because of lack
> of consensus was the inclusion of MTJ (and I don't consider the
> discussion closed on that topic either, so it may still happen some
> day). All the other changes that are desired are simply lacking someone
> to do the work. There were proposals to extend the linear algebra API,
> proposals to add more support for sparse matrices, proposals to get
> partial decomposition ... But sparse contributions (pun intended).
>
> I try to do what I can, but as you have probably seen have been rather
> silent since 2.0 release. For my part, I really, really need help. I
> would like to fix the problems in the eigen decomposition and SVD but
> need a good kick to get on it, and having only requests and no help is
> not really motivating.
>
> Luc
>
>>
>> If that problem were solved, then it would be great to depend on commons
>> math.  If that problem isn't solved, then there is no way to depend on
>> commons math.
>>
>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]>wrote:
>>
>>> We can't possibly have a dependency on Mahout in the long term. Either
>>> we all go shares on code in some other piece of commons, or we end up
>>> with two forks, which would be sad.
>>>
>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <[hidden email]>
>>> wrote:
>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>> this stuff, we can move it into a library in commons (which is
>>>> typically how stuff used to happen in Jakarta).
>>>>
>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <[hidden email]>
>>> wrote:
>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>> CERN colt library forked. The Mahout fork is, of course, in the Mahout
>>>>> tree under a Mahout Java package and Maven triple.
>>>>>
>>>>> I want to use the collections classes from Mahout as the core to a new
>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>> Trove does.
>>>>>
>>>>> The classes I want to start from depend on the classes that are in the
>>>>> Mahout fork.
>>>>>
>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>> submit that it would be more better if the mathematical code were in
>>>>> commons-math. Was this option explored?
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [hidden email]
>>>>> For additional commands, e-mail: [hidden email]
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Jake Mannix
On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:

> This is interesting. We have a raft of mathematically qualified
> committers on Mahout, and this message asking for help on
> commons-math, and a raft of code marooned at mahout that wants to be
> in commons math. If I were one of those mathematically competant
> individuals, I'd be off attaching a patch or three to a JIRA or two
>

The commons-math linear APIs have been described as effectively locked
until 3.0, due to back-compat requirements.  This means that any code
contributed
into c-math would live in a parallel (no pun intended) to the linear
primitives which
exist already in there.

Adopting something like MTJ or Colt in Mahout turned out to be easier,
because
we are on release 0.2 (heading for 0.3 now), and have less stringent
back-compat
requirements, so we are overhauling our linear apis (read: even user-facing
interface changes) to take advantage of useful parts of Colt, and are
planning on
using our Colt fork as the underlying implementation.

Commons-math expressed that changing linear APIs is not something they can
do,
given the maturity of their library, so where would Colt *go* in c-math?
It's own
submodule, having its own eigendecompositions and svd and so forth, running
parallel to the current c-math impls?  Why?

Who would maintain it and write tests for it, and how do you explain to
end-users which they should use?



> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
> wrote:
> > Ted Dunning a écrit :
> >> Actually, the reason that we have Colt in Mahout is it has proven
> impossible
> >> to get changes into commons math.  We really, really wanted to use
> commons
> >> math rather than have our own linear algebra package, but it just proved
> >> impossible and we didn't want to wait forever.
> >
> > If you really, really wants to use commons math and want changes to be
> > included, contribute them.
>

I have submitted patches for the following tickets: MATH-312 (and acceptance
of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
of which have appear to have had much progress on.  All of my patches come
with unit tests for new functionality.

On the other hand, when I opened the discussion about extending the
functions
package to enable composable functions (MATH-313), I got an entirely hostile
response, which only tempered as far as "+0" on adding it after discussion.

In particular, my first step at making commons-math something Mahout could
standardize on for linear work was MATH-312, which I did submit a patch for,
and revised it many times after discussion about what is acceptable practice
in c-math.  Not yet applied, months later.  It's probably far out of date
now...

Similarly, when I tried to ask what the status on decisions on whether to
adopt
MTJ or Colt, the statement by Phil was basically that commons-math would not
adopt anything which had any external dependencies or
not-easily-human-readable java source (which ruled out MTJ because of f2j
produced code), and which had to be fully tested and maintained prior to
adoption (which rules out Colt which has no unit tests yet).

Ted and I weren't making "requests" for other people to do work, we were
wondering whether even offers to do some of the work would be accepted,
and for many of the questions/suggestions we had, it seems the desires
and requirements of the Mahout community were incompatible with those
of commons-math.

  -jake


>  > I think the only change that was proposed and not done because of lack
> > of consensus was the inclusion of MTJ (and I don't consider the
> > discussion closed on that topic either, so it may still happen some
> > day). All the other changes that are desired are simply lacking someone
> > to do the work. There were proposals to extend the linear algebra API,
> > proposals to add more support for sparse matrices, proposals to get
> > partial decomposition ... But sparse contributions (pun intended).
> >
> > I try to do what I can, but as you have probably seen have been rather
> > silent since 2.0 release. For my part, I really, really need help. I
> > would like to fix the problems in the eigen decomposition and SVD but
> > need a good kick to get on it, and having only requests and no help is
> > not really motivating.
> >
> > Luc
> >
> >>
> >> If that problem were solved, then it would be great to depend on commons
> >> math.  If that problem isn't solved, then there is no way to depend on
> >> commons math.
> >>
> >> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
> >wrote:
> >>
> >>> We can't possibly have a dependency on Mahout in the long term. Either
> >>> we all go shares on code in some other piece of commons, or we end up
> >>> with two forks, which would be sad.
> >>>
> >>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
> [hidden email]>
> >>> wrote:
> >>>> I wouldn't like to see a dependency on mahout code in a "commons"
> >>>> library.  That seems kind of backwards.  If Mahout wants to offload
> >>>> this stuff, we can move it into a library in commons (which is
> >>>> typically how stuff used to happen in Jakarta).
> >>>>
> >>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
> [hidden email]>
> >>> wrote:
> >>>>> Mahout now has a fork of a portion of the 'category A' portion of the
> >>>>> CERN colt library forked. The Mahout fork is, of course, in the
> Mahout
> >>>>> tree under a Mahout Java package and Maven triple.
> >>>>>
> >>>>> I want to use the collections classes from Mahout as the core to a
> new
> >>>>> set of commons-primitives classes that do the useful things that GNU
> >>>>> Trove does.
> >>>>>
> >>>>> The classes I want to start from depend on the classes that are in
> the
> >>>>> Mahout fork.
> >>>>>
> >>>>> As a temporary expedient, I can depend on their there. However, I
> >>>>> submit that it would be more better if the mathematical code were in
> >>>>> commons-math. Was this option explored?
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: [hidden email]
> >>>>> For additional commands, e-mail: [hidden email]
> >>>>>
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: [hidden email]
> >>>> For additional commands, e-mail: [hidden email]
> >>>>
> >>>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [hidden email]
> >>> For additional commands, e-mail: [hidden email]
> >>>
> >>>
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Ted Dunning
Similarly, https://issues.apache.org/jira/browse/MATH-310 had code from a
contributor and got totally shot down basically with "We don't care what you
think, we don't want it".  Extensive attempts on my part to find common
ground just got shot down by Phil with -1 and essentially no more discussion
than "don't like it".

Mahout has some unusual requirements and definitely can't use Math as is.
It is also fast moving and needs changes to actually happen.  The experience
has been that only totally trivial non-changes get accepted (
https://issues.apache.org/jira/browse/MATH-267 and
https://issues.apache.org/jira/browse/MATH-222 are examples).  Anything more
interesting seems to get bogged down in NIH or endless alternations of
"not-now we are about to have a major release and can't be distracted" and
"not-now because we aren't doing a major release and have stay compatible".

On Wed, Dec 9, 2009 at 11:58 AM, Jake Mannix <[hidden email]> wrote:

> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]
> >wrote:
>
> > This is interesting. We have a raft of mathematically qualified
> > committers on Mahout, and this message asking for help on
> > commons-math, and a raft of code marooned at mahout that wants to be
> > in commons math. If I were one of those mathematically competant
> > individuals, I'd be off attaching a patch or three to a JIRA or two
> >
>
> The commons-math linear APIs have been described as effectively locked
> until 3.0, due to back-compat requirements.  This means that any code
> contributed
> into c-math would live in a parallel (no pun intended) to the linear
> primitives which
> exist already in there.
>
> Adopting something like MTJ or Colt in Mahout turned out to be easier,
> because
> we are on release 0.2 (heading for 0.3 now), and have less stringent
> back-compat
> requirements, so we are overhauling our linear apis (read: even user-facing
> interface changes) to take advantage of useful parts of Colt, and are
> planning on
> using our Colt fork as the underlying implementation.
>
> Commons-math expressed that changing linear APIs is not something they can
> do,
> given the maturity of their library, so where would Colt *go* in c-math?
> It's own
> submodule, having its own eigendecompositions and svd and so forth, running
> parallel to the current c-math impls?  Why?
>
> Who would maintain it and write tests for it, and how do you explain to
> end-users which they should use?
>
>
>
> > On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
> > wrote:
> > > Ted Dunning a écrit :
> > >> Actually, the reason that we have Colt in Mahout is it has proven
> > impossible
> > >> to get changes into commons math.  We really, really wanted to use
> > commons
> > >> math rather than have our own linear algebra package, but it just
> proved
> > >> impossible and we didn't want to wait forever.
> > >
> > > If you really, really wants to use commons math and want changes to be
> > > included, contribute them.
> >
>
> I have submitted patches for the following tickets: MATH-312 (and
> acceptance
> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
> of which have appear to have had much progress on.  All of my patches come
> with unit tests for new functionality.
>
> On the other hand, when I opened the discussion about extending the
> functions
> package to enable composable functions (MATH-313), I got an entirely
> hostile
> response, which only tempered as far as "+0" on adding it after discussion.
>
> In particular, my first step at making commons-math something Mahout could
> standardize on for linear work was MATH-312, which I did submit a patch
> for,
> and revised it many times after discussion about what is acceptable
> practice
> in c-math.  Not yet applied, months later.  It's probably far out of date
> now...
>
> Similarly, when I tried to ask what the status on decisions on whether to
> adopt
> MTJ or Colt, the statement by Phil was basically that commons-math would
> not
> adopt anything which had any external dependencies or
> not-easily-human-readable java source (which ruled out MTJ because of f2j
> produced code), and which had to be fully tested and maintained prior to
> adoption (which rules out Colt which has no unit tests yet).
>
> Ted and I weren't making "requests" for other people to do work, we were
> wondering whether even offers to do some of the work would be accepted,
> and for many of the questions/suggestions we had, it seems the desires
> and requirements of the Mahout community were incompatible with those
> of commons-math.
>
>  -jake
>
>
> >  > I think the only change that was proposed and not done because of lack
> > > of consensus was the inclusion of MTJ (and I don't consider the
> > > discussion closed on that topic either, so it may still happen some
> > > day). All the other changes that are desired are simply lacking someone
> > > to do the work. There were proposals to extend the linear algebra API,
> > > proposals to add more support for sparse matrices, proposals to get
> > > partial decomposition ... But sparse contributions (pun intended).
> > >
> > > I try to do what I can, but as you have probably seen have been rather
> > > silent since 2.0 release. For my part, I really, really need help. I
> > > would like to fix the problems in the eigen decomposition and SVD but
> > > need a good kick to get on it, and having only requests and no help is
> > > not really motivating.
> > >
> > > Luc
> > >
> > >>
> > >> If that problem were solved, then it would be great to depend on
> commons
> > >> math.  If that problem isn't solved, then there is no way to depend on
> > >> commons math.
> > >>
> > >> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <
> [hidden email]
> > >wrote:
> > >>
> > >>> We can't possibly have a dependency on Mahout in the long term.
> Either
> > >>> we all go shares on code in some other piece of commons, or we end up
> > >>> with two forks, which would be sad.
> > >>>
> > >>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
> > [hidden email]>
> > >>> wrote:
> > >>>> I wouldn't like to see a dependency on mahout code in a "commons"
> > >>>> library.  That seems kind of backwards.  If Mahout wants to offload
> > >>>> this stuff, we can move it into a library in commons (which is
> > >>>> typically how stuff used to happen in Jakarta).
> > >>>>
> > >>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
> > [hidden email]>
> > >>> wrote:
> > >>>>> Mahout now has a fork of a portion of the 'category A' portion of
> the
> > >>>>> CERN colt library forked. The Mahout fork is, of course, in the
> > Mahout
> > >>>>> tree under a Mahout Java package and Maven triple.
> > >>>>>
> > >>>>> I want to use the collections classes from Mahout as the core to a
> > new
> > >>>>> set of commons-primitives classes that do the useful things that
> GNU
> > >>>>> Trove does.
> > >>>>>
> > >>>>> The classes I want to start from depend on the classes that are in
> > the
> > >>>>> Mahout fork.
> > >>>>>
> > >>>>> As a temporary expedient, I can depend on their there. However, I
> > >>>>> submit that it would be more better if the mathematical code were
> in
> > >>>>> commons-math. Was this option explored?
> > >>>>>
> > >>>>>
> ---------------------------------------------------------------------
> > >>>>> To unsubscribe, e-mail: [hidden email]
> > >>>>> For additional commands, e-mail: [hidden email]
> > >>>>>
> > >>>>>
> > >>>>
> ---------------------------------------------------------------------
> > >>>> To unsubscribe, e-mail: [hidden email]
> > >>>> For additional commands, e-mail: [hidden email]
> > >>>>
> > >>>>
> > >>> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: [hidden email]
> > >>> For additional commands, e-mail: [hidden email]
> > >>>
> > >>>
> > >>
> > >>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [hidden email]
> > > For additional commands, e-mail: [hidden email]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>



--
Ted Dunning, CTO
DeepDyve
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Ted Dunning
In reply to this post by Jake Mannix
I don't want to denigrate the large contributions of Phil and Luc
(especially Luc), but I have drawn a stronger conclusion that it isn't worth
my time to contribute to commons-math because interesting changes likely
won't get accepted.

On Wed, Dec 9, 2009 at 11:58 AM, Jake Mannix <[hidden email]> wrote:

> Ted and I weren't making "requests" for other people to do work, we were
> wondering whether even offers to do some of the work would be accepted,
>



--
Ted Dunning, CTO
DeepDyve
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Luc Maisonobe
In reply to this post by Jake Mannix
Jake Mannix a écrit :

> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:
>
>> This is interesting. We have a raft of mathematically qualified
>> committers on Mahout, and this message asking for help on
>> commons-math, and a raft of code marooned at mahout that wants to be
>> in commons math. If I were one of those mathematically competant
>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>
>
> The commons-math linear APIs have been described as effectively locked
> until 3.0, due to back-compat requirements.  This means that any code
> contributed
> into c-math would live in a parallel (no pun intended) to the linear
> primitives which
> exist already in there.
>
> Adopting something like MTJ or Colt in Mahout turned out to be easier,
> because
> we are on release 0.2 (heading for 0.3 now), and have less stringent
> back-compat
> requirements, so we are overhauling our linear apis (read: even user-facing
> interface changes) to take advantage of useful parts of Colt, and are
> planning on
> using our Colt fork as the underlying implementation.
>
> Commons-math expressed that changing linear APIs is not something they can
> do,
> given the maturity of their library, so where would Colt *go* in c-math?
> It's own
> submodule, having its own eigendecompositions and svd and so forth, running
> parallel to the current c-math impls?  Why?
>
> Who would maintain it and write tests for it, and how do you explain to
> end-users which they should use?
>
>
>
>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>> wrote:
>>> Ted Dunning a écrit :
>>>> Actually, the reason that we have Colt in Mahout is it has proven
>> impossible
>>>> to get changes into commons math.  We really, really wanted to use
>> commons
>>>> math rather than have our own linear algebra package, but it just proved
>>>> impossible and we didn't want to wait forever.
>>> If you really, really wants to use commons math and want changes to be
>>> included, contribute them.
>
> I have submitted patches for the following tickets: MATH-312 (and acceptance
> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
> of which have appear to have had much progress on.  All of my patches come
> with unit tests for new functionality.

I had these patches in my backlog and considered them accepted. I should
have commited them before, sorry for that. I'll take care of them right now.

>
> On the other hand, when I opened the discussion about extending the
> functions
> package to enable composable functions (MATH-313), I got an entirely hostile
> response, which only tempered as far as "+0" on adding it after discussion.

The discussion was not entirely hostile as we get some intermediate
consensus at some points. I understand your feelings after several
patches that did not get committed fast enough.

Please accept my apologizes for this.

Luc

>
> In particular, my first step at making commons-math something Mahout could
> standardize on for linear work was MATH-312, which I did submit a patch for,
> and revised it many times after discussion about what is acceptable practice
> in c-math.  Not yet applied, months later.  It's probably far out of date
> now...
>
> Similarly, when I tried to ask what the status on decisions on whether to
> adopt
> MTJ or Colt, the statement by Phil was basically that commons-math would not
> adopt anything which had any external dependencies or
> not-easily-human-readable java source (which ruled out MTJ because of f2j
> produced code), and which had to be fully tested and maintained prior to
> adoption (which rules out Colt which has no unit tests yet).
>
> Ted and I weren't making "requests" for other people to do work, we were
> wondering whether even offers to do some of the work would be accepted,
> and for many of the questions/suggestions we had, it seems the desires
> and requirements of the Mahout community were incompatible with those
> of commons-math.
>
>   -jake
>
>
>>  > I think the only change that was proposed and not done because of lack
>>> of consensus was the inclusion of MTJ (and I don't consider the
>>> discussion closed on that topic either, so it may still happen some
>>> day). All the other changes that are desired are simply lacking someone
>>> to do the work. There were proposals to extend the linear algebra API,
>>> proposals to add more support for sparse matrices, proposals to get
>>> partial decomposition ... But sparse contributions (pun intended).
>>>
>>> I try to do what I can, but as you have probably seen have been rather
>>> silent since 2.0 release. For my part, I really, really need help. I
>>> would like to fix the problems in the eigen decomposition and SVD but
>>> need a good kick to get on it, and having only requests and no help is
>>> not really motivating.
>>>
>>> Luc
>>>
>>>> If that problem were solved, then it would be great to depend on commons
>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>> commons math.
>>>>
>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
>>> wrote:
>>>>> We can't possibly have a dependency on Mahout in the long term. Either
>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>> with two forks, which would be sad.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>> [hidden email]>
>>>>> wrote:
>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>> [hidden email]>
>>>>> wrote:
>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>> Mahout
>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>
>>>>>>> I want to use the collections classes from Mahout as the core to a
>> new
>>>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>>>> Trove does.
>>>>>>>
>>>>>>> The classes I want to start from depend on the classes that are in
>> the
>>>>>>> Mahout fork.
>>>>>>>
>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>> submit that it would be more better if the mathematical code were in
>>>>>>> commons-math. Was this option explored?
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [hidden email]
>>>>> For additional commands, e-mail: [hidden email]
>>>>>
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Benson Margulies
I can see how everyone ends up with a headache here.

As the person who threw the most recent rock into the lake, let me
re-present the situation as I got into it.

CERN Colt is a library with a mixture of 'category A' material and
'category B-or-worse' material. In other words, it is not an
attractive dependency for ASF code as a lump.

Part of the 'category A' code is a set of very pretty associative
containers for primitive types. My goal is to take this code and
modernize it to use Generics as appropriate -- and otherwise make it a
replacement for the LGPL Trove library.

The associative code uses some math code. I'm pretty sure that all of
the math code that it uses is also category A. In fact, I believe that
all of it is in the portion that Mahout forked. This includes some
things that aren't in commons-math at all.

So, we have some adoptable code in Colt that overlaps functionality in
-math, some that doesn't, and some that I want to use as the basis for
work in -primitives.

If the messages in this thread mean that the code already in -math is
in fact moving in a direction to support mahout, then it might be
acceptable for the additional, non-overlapping, Colt math code to end
up in -math, and then everyone ends up happy?

Another question: OK, -math is a stable, high-compatibility library.
Mahout, on the other hand, wants to be a fast-moving, somewhat fluid,
build of code (naturally including some math code) adapted for
map-reduce. So, how about a branch of math that could release
frequently with a new major version number? Obviously, from a work
standpoint, this would depend on some of the Mahouts achieving
committer status in commons.




On Wed, Dec 9, 2009 at 3:46 PM, Luc Maisonobe <[hidden email]> wrote:

> Jake Mannix a écrit :
>> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:
>>
>>> This is interesting. We have a raft of mathematically qualified
>>> committers on Mahout, and this message asking for help on
>>> commons-math, and a raft of code marooned at mahout that wants to be
>>> in commons math. If I were one of those mathematically competant
>>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>>
>>
>> The commons-math linear APIs have been described as effectively locked
>> until 3.0, due to back-compat requirements.  This means that any code
>> contributed
>> into c-math would live in a parallel (no pun intended) to the linear
>> primitives which
>> exist already in there.
>>
>> Adopting something like MTJ or Colt in Mahout turned out to be easier,
>> because
>> we are on release 0.2 (heading for 0.3 now), and have less stringent
>> back-compat
>> requirements, so we are overhauling our linear apis (read: even user-facing
>> interface changes) to take advantage of useful parts of Colt, and are
>> planning on
>> using our Colt fork as the underlying implementation.
>>
>> Commons-math expressed that changing linear APIs is not something they can
>> do,
>> given the maturity of their library, so where would Colt *go* in c-math?
>> It's own
>> submodule, having its own eigendecompositions and svd and so forth, running
>> parallel to the current c-math impls?  Why?
>>
>> Who would maintain it and write tests for it, and how do you explain to
>> end-users which they should use?
>>
>>
>>
>>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>>> wrote:
>>>> Ted Dunning a écrit :
>>>>> Actually, the reason that we have Colt in Mahout is it has proven
>>> impossible
>>>>> to get changes into commons math.  We really, really wanted to use
>>> commons
>>>>> math rather than have our own linear algebra package, but it just proved
>>>>> impossible and we didn't want to wait forever.
>>>> If you really, really wants to use commons math and want changes to be
>>>> included, contribute them.
>>
>> I have submitted patches for the following tickets: MATH-312 (and acceptance
>> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
>> of which have appear to have had much progress on.  All of my patches come
>> with unit tests for new functionality.
>
> I had these patches in my backlog and considered them accepted. I should
> have commited them before, sorry for that. I'll take care of them right now.
>
>>
>> On the other hand, when I opened the discussion about extending the
>> functions
>> package to enable composable functions (MATH-313), I got an entirely hostile
>> response, which only tempered as far as "+0" on adding it after discussion.
>
> The discussion was not entirely hostile as we get some intermediate
> consensus at some points. I understand your feelings after several
> patches that did not get committed fast enough.
>
> Please accept my apologizes for this.
>
> Luc
>
>>
>> In particular, my first step at making commons-math something Mahout could
>> standardize on for linear work was MATH-312, which I did submit a patch for,
>> and revised it many times after discussion about what is acceptable practice
>> in c-math.  Not yet applied, months later.  It's probably far out of date
>> now...
>>
>> Similarly, when I tried to ask what the status on decisions on whether to
>> adopt
>> MTJ or Colt, the statement by Phil was basically that commons-math would not
>> adopt anything which had any external dependencies or
>> not-easily-human-readable java source (which ruled out MTJ because of f2j
>> produced code), and which had to be fully tested and maintained prior to
>> adoption (which rules out Colt which has no unit tests yet).
>>
>> Ted and I weren't making "requests" for other people to do work, we were
>> wondering whether even offers to do some of the work would be accepted,
>> and for many of the questions/suggestions we had, it seems the desires
>> and requirements of the Mahout community were incompatible with those
>> of commons-math.
>>
>>   -jake
>>
>>
>>>  > I think the only change that was proposed and not done because of lack
>>>> of consensus was the inclusion of MTJ (and I don't consider the
>>>> discussion closed on that topic either, so it may still happen some
>>>> day). All the other changes that are desired are simply lacking someone
>>>> to do the work. There were proposals to extend the linear algebra API,
>>>> proposals to add more support for sparse matrices, proposals to get
>>>> partial decomposition ... But sparse contributions (pun intended).
>>>>
>>>> I try to do what I can, but as you have probably seen have been rather
>>>> silent since 2.0 release. For my part, I really, really need help. I
>>>> would like to fix the problems in the eigen decomposition and SVD but
>>>> need a good kick to get on it, and having only requests and no help is
>>>> not really motivating.
>>>>
>>>> Luc
>>>>
>>>>> If that problem were solved, then it would be great to depend on commons
>>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>>> commons math.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
>>>> wrote:
>>>>>> We can't possibly have a dependency on Mahout in the long term. Either
>>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>>> with two forks, which would be sad.
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>>
>>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>>> Mahout
>>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>>
>>>>>>>> I want to use the collections classes from Mahout as the core to a
>>> new
>>>>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>>>>> Trove does.
>>>>>>>>
>>>>>>>> The classes I want to start from depend on the classes that are in
>>> the
>>>>>>>> Mahout fork.
>>>>>>>>
>>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>>> submit that it would be more better if the mathematical code were in
>>>>>>>> commons-math. Was this option explored?
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>>
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Jake Mannix
In reply to this post by Luc Maisonobe
On Wed, Dec 9, 2009 at 12:46 PM, Luc Maisonobe <[hidden email]>wrote:

> >
> > I have submitted patches for the following tickets: MATH-312 (and
> acceptance
> > of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
> > of which have appear to have had much progress on.  All of my patches
> come
> > with unit tests for new functionality.
>
> I had these patches in my backlog and considered them accepted. I should
> have commited them before, sorry for that. I'll take care of them right
> now.
>
> >
> > On the other hand, when I opened the discussion about extending the
> > functions
> > package to enable composable functions (MATH-313), I got an entirely
> hostile
> > response, which only tempered as far as "+0" on adding it after
> discussion.
>
> The discussion was not entirely hostile as we get some intermediate
> consensus at some points. I understand your feelings after several
> patches that did not get committed fast enough.
>
> Please accept my apologizes for this.
>

Luc, looking back over that thread, I should say that no, it was not
entirely
hostile - and we did come to more of a consensus later on (although even
that consensus was given a very lukewarm +0 from Phil).  I apologize for
any implication that I was being treated poorly or unfairly.

It just seems that as Benson says later, that the rate of change of c-math
and
mahout are rather different, and this discussion around those JIRA tickets
simply highlighted what this understanding was.

  -jake
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Jake Mannix
In reply to this post by Benson Margulies
On Wed, Dec 9, 2009 at 1:17 PM, Benson Margulies <[hidden email]>wrote:

>
> CERN Colt is a library with a mixture of 'category A' material and
> 'category B-or-worse' material. In other words, it is not an
> attractive dependency for ASF code as a lump.
>

Yep, that's why when I made my original patch of Colt for Mahout, I
stripped out all dependency on the 'category B-or-worse' material, and
tried to keep everything else other than the physics specific stuff that
nobody was going to need.


> Part of the 'category A' code is a set of very pretty associative
> containers for primitive types. My goal is to take this code and
> modernize it to use Generics as appropriate -- and otherwise make it a
> replacement for the LGPL Trove library.
>

I believe Mahout kept all this: look in o.a.m.matrix.list and
o.a.m.matrix.map
The package name they're both in (o.a.m.matrix) is bad - it used to be
"colt",
but that name is trademarked by CERN, so even if the code is freely
licensable, the name isn't.  It might be better called "collections" or
something.

The associative code uses some math code. I'm pretty sure that all of
> the math code that it uses is also category A. In fact, I believe that
> all of it is in the portion that Mahout forked. This includes some
> things that aren't in commons-math at all.
>

Oh, this is what you're saying here, ok.


> So, we have some adoptable code in Colt that overlaps functionality in
> -math, some that doesn't, and some that I want to use as the basis for
> work in -primitives.
>

The stuff you want in primitives is also stuff we use/want to use for
our linear work in Mahout, by the way (OpenDoubleIntHashMap,
DoubleArrayList, etc...).


> If the messages in this thread mean that the code already in -math is
> in fact moving in a direction to support mahout, then it might be
> acceptable for the additional, non-overlapping, Colt math code to end
> up in -math, and then everyone ends up happy?
>

None of the patches mentioned above contain Colt code, so no, c-math
is not moving in a direction to support what mahout needs, not really,
because of the backwards compatibility constraints and the fact that
it's hard to tell what is the "non-overlapping" part of Colt math: for
example: vectors in Colt provide complex aggregation methods, but
c-math vectors do not (as an interface).  Is this non-overlapping
code?  If it is, then how would you suppose this would be incorporated
in c-math?  Add a new interface, the "ColtVector", which is basically
the same as c-math's "RealVector", but with some methods removed
and some others added?

This doesn't really make sense.  Implementations are one thing, but
interfaces which consumers see is another.

Another question: OK, -math is a stable, high-compatibility library.
> Mahout, on the other hand, wants to be a fast-moving, somewhat fluid,
> build of code (naturally including some math code) adapted for
> map-reduce. So, how about a branch of math that could release
> frequently with a new major version number?


Well, actually, a more feasible version of this, instead of branches, would
be to use the current "experimental" source submodule in commons-math.
If that could be a faster moving fluid build which could include colt math
etc, that would be great, and Mahout could possibly use this.

This brings up another point though: if commons-primitives is what you're
creating, and want to base it on colt, well, we in Mahout could probably
handle
depending on you, but colt math linear depends on these, so can
commons-math depend on commons-primitives, or does that violate
c-math's "no external dependencies" rule?  This would keep c-math from
adopting colt math, because those would need the colt-primitives stuff.

  -jake
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Phil Steitz
In reply to this post by Ted Dunning
Ted Dunning wrote:
> Similarly, https://issues.apache.org/jira/browse/MATH-310 had code from a
> contributor and got totally shot down basically with "We don't care what you
> think, we don't want it".  Extensive attempts on my part to find common
> ground just got shot down by Phil with -1 and essentially no more discussion
> than "don't like it".

Sorry you feel that way.  My objections were to the design, not in
any way personal or dismissive.  I did indicate alternative ways to
get the desired functionality implemented.  I also explained, I
think, pretty clearly why "I did not like it" and I stand behind my
comments.

Phil

>
> Mahout has some unusual requirements and definitely can't use Math as is.
> It is also fast moving and needs changes to actually happen.  The experience
> has been that only totally trivial non-changes get accepted (
> https://issues.apache.org/jira/browse/MATH-267 and
> https://issues.apache.org/jira/browse/MATH-222 are examples).  Anything more
> interesting seems to get bogged down in NIH or endless alternations of
> "not-now we are about to have a major release and can't be distracted" and
> "not-now because we aren't doing a major release and have stay compatible".
>
> On Wed, Dec 9, 2009 at 11:58 AM, Jake Mannix <[hidden email]> wrote:
>
>> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]
>>> wrote:
>>> This is interesting. We have a raft of mathematically qualified
>>> committers on Mahout, and this message asking for help on
>>> commons-math, and a raft of code marooned at mahout that wants to be
>>> in commons math. If I were one of those mathematically competant
>>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>>
>> The commons-math linear APIs have been described as effectively locked
>> until 3.0, due to back-compat requirements.  This means that any code
>> contributed
>> into c-math would live in a parallel (no pun intended) to the linear
>> primitives which
>> exist already in there.
>>
>> Adopting something like MTJ or Colt in Mahout turned out to be easier,
>> because
>> we are on release 0.2 (heading for 0.3 now), and have less stringent
>> back-compat
>> requirements, so we are overhauling our linear apis (read: even user-facing
>> interface changes) to take advantage of useful parts of Colt, and are
>> planning on
>> using our Colt fork as the underlying implementation.
>>
>> Commons-math expressed that changing linear APIs is not something they can
>> do,
>> given the maturity of their library, so where would Colt *go* in c-math?
>> It's own
>> submodule, having its own eigendecompositions and svd and so forth, running
>> parallel to the current c-math impls?  Why?
>>
>> Who would maintain it and write tests for it, and how do you explain to
>> end-users which they should use?
>>
>>
>>
>>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>>> wrote:
>>>> Ted Dunning a écrit :
>>>>> Actually, the reason that we have Colt in Mahout is it has proven
>>> impossible
>>>>> to get changes into commons math.  We really, really wanted to use
>>> commons
>>>>> math rather than have our own linear algebra package, but it just
>> proved
>>>>> impossible and we didn't want to wait forever.
>>>> If you really, really wants to use commons math and want changes to be
>>>> included, contribute them.
>> I have submitted patches for the following tickets: MATH-312 (and
>> acceptance
>> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
>> of which have appear to have had much progress on.  All of my patches come
>> with unit tests for new functionality.
>>
>> On the other hand, when I opened the discussion about extending the
>> functions
>> package to enable composable functions (MATH-313), I got an entirely
>> hostile
>> response, which only tempered as far as "+0" on adding it after discussion.
>>
>> In particular, my first step at making commons-math something Mahout could
>> standardize on for linear work was MATH-312, which I did submit a patch
>> for,
>> and revised it many times after discussion about what is acceptable
>> practice
>> in c-math.  Not yet applied, months later.  It's probably far out of date
>> now...
>>
>> Similarly, when I tried to ask what the status on decisions on whether to
>> adopt
>> MTJ or Colt, the statement by Phil was basically that commons-math would
>> not
>> adopt anything which had any external dependencies or
>> not-easily-human-readable java source (which ruled out MTJ because of f2j
>> produced code), and which had to be fully tested and maintained prior to
>> adoption (which rules out Colt which has no unit tests yet).
>>
>> Ted and I weren't making "requests" for other people to do work, we were
>> wondering whether even offers to do some of the work would be accepted,
>> and for many of the questions/suggestions we had, it seems the desires
>> and requirements of the Mahout community were incompatible with those
>> of commons-math.
>>
>>  -jake
>>
>>
>>>  > I think the only change that was proposed and not done because of lack
>>>> of consensus was the inclusion of MTJ (and I don't consider the
>>>> discussion closed on that topic either, so it may still happen some
>>>> day). All the other changes that are desired are simply lacking someone
>>>> to do the work. There were proposals to extend the linear algebra API,
>>>> proposals to add more support for sparse matrices, proposals to get
>>>> partial decomposition ... But sparse contributions (pun intended).
>>>>
>>>> I try to do what I can, but as you have probably seen have been rather
>>>> silent since 2.0 release. For my part, I really, really need help. I
>>>> would like to fix the problems in the eigen decomposition and SVD but
>>>> need a good kick to get on it, and having only requests and no help is
>>>> not really motivating.
>>>>
>>>> Luc
>>>>
>>>>> If that problem were solved, then it would be great to depend on
>> commons
>>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>>> commons math.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <
>> [hidden email]
>>>> wrote:
>>>>>> We can't possibly have a dependency on Mahout in the long term.
>> Either
>>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>>> with two forks, which would be sad.
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>>
>>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of
>> the
>>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>>> Mahout
>>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>>
>>>>>>>> I want to use the collections classes from Mahout as the core to a
>>> new
>>>>>>>> set of commons-primitives classes that do the useful things that
>> GNU
>>>>>>>> Trove does.
>>>>>>>>
>>>>>>>> The classes I want to start from depend on the classes that are in
>>> the
>>>>>>>> Mahout fork.
>>>>>>>>
>>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>>> submit that it would be more better if the mathematical code were
>> in
>>>>>>>> commons-math. Was this option explored?
>>>>>>>>
>>>>>>>>
>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>>
>>>>>>>>
>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Henri Yandell
In reply to this post by Luc Maisonobe
Btw, useful link that shows you the patches (or at least attachments)
you currently have on open tickets:

https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-1&issueStatus=open&selectedProjectId=12310485&reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport&Next=Next

On Wed, Dec 9, 2009 at 12:46 PM, Luc Maisonobe <[hidden email]> wrote:

> Jake Mannix a écrit :
>> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:
>>
>>> This is interesting. We have a raft of mathematically qualified
>>> committers on Mahout, and this message asking for help on
>>> commons-math, and a raft of code marooned at mahout that wants to be
>>> in commons math. If I were one of those mathematically competant
>>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>>
>>
>> The commons-math linear APIs have been described as effectively locked
>> until 3.0, due to back-compat requirements.  This means that any code
>> contributed
>> into c-math would live in a parallel (no pun intended) to the linear
>> primitives which
>> exist already in there.
>>
>> Adopting something like MTJ or Colt in Mahout turned out to be easier,
>> because
>> we are on release 0.2 (heading for 0.3 now), and have less stringent
>> back-compat
>> requirements, so we are overhauling our linear apis (read: even user-facing
>> interface changes) to take advantage of useful parts of Colt, and are
>> planning on
>> using our Colt fork as the underlying implementation.
>>
>> Commons-math expressed that changing linear APIs is not something they can
>> do,
>> given the maturity of their library, so where would Colt *go* in c-math?
>> It's own
>> submodule, having its own eigendecompositions and svd and so forth, running
>> parallel to the current c-math impls?  Why?
>>
>> Who would maintain it and write tests for it, and how do you explain to
>> end-users which they should use?
>>
>>
>>
>>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>>> wrote:
>>>> Ted Dunning a écrit :
>>>>> Actually, the reason that we have Colt in Mahout is it has proven
>>> impossible
>>>>> to get changes into commons math.  We really, really wanted to use
>>> commons
>>>>> math rather than have our own linear algebra package, but it just proved
>>>>> impossible and we didn't want to wait forever.
>>>> If you really, really wants to use commons math and want changes to be
>>>> included, contribute them.
>>
>> I have submitted patches for the following tickets: MATH-312 (and acceptance
>> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
>> of which have appear to have had much progress on.  All of my patches come
>> with unit tests for new functionality.
>
> I had these patches in my backlog and considered them accepted. I should
> have commited them before, sorry for that. I'll take care of them right now.
>
>>
>> On the other hand, when I opened the discussion about extending the
>> functions
>> package to enable composable functions (MATH-313), I got an entirely hostile
>> response, which only tempered as far as "+0" on adding it after discussion.
>
> The discussion was not entirely hostile as we get some intermediate
> consensus at some points. I understand your feelings after several
> patches that did not get committed fast enough.
>
> Please accept my apologizes for this.
>
> Luc
>
>>
>> In particular, my first step at making commons-math something Mahout could
>> standardize on for linear work was MATH-312, which I did submit a patch for,
>> and revised it many times after discussion about what is acceptable practice
>> in c-math.  Not yet applied, months later.  It's probably far out of date
>> now...
>>
>> Similarly, when I tried to ask what the status on decisions on whether to
>> adopt
>> MTJ or Colt, the statement by Phil was basically that commons-math would not
>> adopt anything which had any external dependencies or
>> not-easily-human-readable java source (which ruled out MTJ because of f2j
>> produced code), and which had to be fully tested and maintained prior to
>> adoption (which rules out Colt which has no unit tests yet).
>>
>> Ted and I weren't making "requests" for other people to do work, we were
>> wondering whether even offers to do some of the work would be accepted,
>> and for many of the questions/suggestions we had, it seems the desires
>> and requirements of the Mahout community were incompatible with those
>> of commons-math.
>>
>>   -jake
>>
>>
>>>  > I think the only change that was proposed and not done because of lack
>>>> of consensus was the inclusion of MTJ (and I don't consider the
>>>> discussion closed on that topic either, so it may still happen some
>>>> day). All the other changes that are desired are simply lacking someone
>>>> to do the work. There were proposals to extend the linear algebra API,
>>>> proposals to add more support for sparse matrices, proposals to get
>>>> partial decomposition ... But sparse contributions (pun intended).
>>>>
>>>> I try to do what I can, but as you have probably seen have been rather
>>>> silent since 2.0 release. For my part, I really, really need help. I
>>>> would like to fix the problems in the eigen decomposition and SVD but
>>>> need a good kick to get on it, and having only requests and no help is
>>>> not really motivating.
>>>>
>>>> Luc
>>>>
>>>>> If that problem were solved, then it would be great to depend on commons
>>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>>> commons math.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
>>>> wrote:
>>>>>> We can't possibly have a dependency on Mahout in the long term. Either
>>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>>> with two forks, which would be sad.
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>>
>>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>>> Mahout
>>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>>
>>>>>>>> I want to use the collections classes from Mahout as the core to a
>>> new
>>>>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>>>>> Trove does.
>>>>>>>>
>>>>>>>> The classes I want to start from depend on the classes that are in
>>> the
>>>>>>>> Mahout fork.
>>>>>>>>
>>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>>> submit that it would be more better if the mathematical code were in
>>>>>>>> commons-math. Was this option explored?
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>>
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Phil Steitz
In reply to this post by Luc Maisonobe
Luc Maisonobe wrote:

> Jake Mannix a écrit :
>> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:
>>
>>> This is interesting. We have a raft of mathematically qualified
>>> committers on Mahout, and this message asking for help on
>>> commons-math, and a raft of code marooned at mahout that wants to be
>>> in commons math. If I were one of those mathematically competant
>>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>>
>> The commons-math linear APIs have been described as effectively locked
>> until 3.0, due to back-compat requirements.  This means that any code
>> contributed
>> into c-math would live in a parallel (no pun intended) to the linear
>> primitives which
>> exist already in there.
>>
>> Adopting something like MTJ or Colt in Mahout turned out to be easier,
>> because
>> we are on release 0.2 (heading for 0.3 now), and have less stringent
>> back-compat
>> requirements, so we are overhauling our linear apis (read: even user-facing
>> interface changes) to take advantage of useful parts of Colt, and are
>> planning on
>> using our Colt fork as the underlying implementation.
>>
>> Commons-math expressed that changing linear APIs is not something they can
>> do,
>> given the maturity of their library, so where would Colt *go* in c-math?
>> It's own
>> submodule, having its own eigendecompositions and svd and so forth, running
>> parallel to the current c-math impls?  Why?
>>
>> Who would maintain it and write tests for it, and how do you explain to
>> end-users which they should use?
>>
>>
>>
>>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>>> wrote:
>>>> Ted Dunning a écrit :
>>>>> Actually, the reason that we have Colt in Mahout is it has proven
>>> impossible
>>>>> to get changes into commons math.  We really, really wanted to use
>>> commons
>>>>> math rather than have our own linear algebra package, but it just proved
>>>>> impossible and we didn't want to wait forever.
>>>> If you really, really wants to use commons math and want changes to be
>>>> included, contribute them.
>> I have submitted patches for the following tickets: MATH-312 (and acceptance
>> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
>> of which have appear to have had much progress on.  All of my patches come
>> with unit tests for new functionality.
>
> I had these patches in my backlog and considered them accepted. I should
> have commited them before, sorry for that. I'll take care of them right now.
>
>> On the other hand, when I opened the discussion about extending the
>> functions
>> package to enable composable functions (MATH-313), I got an entirely hostile
>> response, which only tempered as far as "+0" on adding it after discussion.
>
> The discussion was not entirely hostile as we get some intermediate
> consensus at some points. I understand your feelings after several
> patches that did not get committed fast enough.
>
> Please accept my apologizes for this.

I have to apologize as well here for lack of cycles to help get
[math] patches in recently.  That should improve shortly.

Phil

>
> Luc
>
>> In particular, my first step at making commons-math something Mahout could
>> standardize on for linear work was MATH-312, which I did submit a patch for,
>> and revised it many times after discussion about what is acceptable practice
>> in c-math.  Not yet applied, months later.  It's probably far out of date
>> now...
>>
>> Similarly, when I tried to ask what the status on decisions on whether to
>> adopt
>> MTJ or Colt, the statement by Phil was basically that commons-math would not
>> adopt anything which had any external dependencies or
>> not-easily-human-readable java source (which ruled out MTJ because of f2j
>> produced code), and which had to be fully tested and maintained prior to
>> adoption (which rules out Colt which has no unit tests yet).
>>
>> Ted and I weren't making "requests" for other people to do work, we were
>> wondering whether even offers to do some of the work would be accepted,
>> and for many of the questions/suggestions we had, it seems the desires
>> and requirements of the Mahout community were incompatible with those
>> of commons-math.
>>
>>   -jake
>>
>>
>>>  > I think the only change that was proposed and not done because of lack
>>>> of consensus was the inclusion of MTJ (and I don't consider the
>>>> discussion closed on that topic either, so it may still happen some
>>>> day). All the other changes that are desired are simply lacking someone
>>>> to do the work. There were proposals to extend the linear algebra API,
>>>> proposals to add more support for sparse matrices, proposals to get
>>>> partial decomposition ... But sparse contributions (pun intended).
>>>>
>>>> I try to do what I can, but as you have probably seen have been rather
>>>> silent since 2.0 release. For my part, I really, really need help. I
>>>> would like to fix the problems in the eigen decomposition and SVD but
>>>> need a good kick to get on it, and having only requests and no help is
>>>> not really motivating.
>>>>
>>>> Luc
>>>>
>>>>> If that problem were solved, then it would be great to depend on commons
>>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>>> commons math.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
>>>> wrote:
>>>>>> We can't possibly have a dependency on Mahout in the long term. Either
>>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>>> with two forks, which would be sad.
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>>
>>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>>> [hidden email]>
>>>>>> wrote:
>>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>>> Mahout
>>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>>
>>>>>>>> I want to use the collections classes from Mahout as the core to a
>>> new
>>>>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>>>>> Trove does.
>>>>>>>>
>>>>>>>> The classes I want to start from depend on the classes that are in
>>> the
>>>>>>>> Mahout fork.
>>>>>>>>
>>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>>> submit that it would be more better if the mathematical code were in
>>>>>>>> commons-math. Was this option explored?
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>>
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Phil Steitz
In reply to this post by Jake Mannix
Jake Mannix wrote:

> On Wed, Dec 9, 2009 at 11:09 AM, Benson Margulies <[hidden email]>wrote:
>
>> This is interesting. We have a raft of mathematically qualified
>> committers on Mahout, and this message asking for help on
>> commons-math, and a raft of code marooned at mahout that wants to be
>> in commons math. If I were one of those mathematically competant
>> individuals, I'd be off attaching a patch or three to a JIRA or two
>>
>
> The commons-math linear APIs have been described as effectively locked
> until 3.0, due to back-compat requirements.  This means that any code
> contributed
> into c-math would live in a parallel (no pun intended) to the linear
> primitives which
> exist already in there.
>
> Adopting something like MTJ or Colt in Mahout turned out to be easier,
> because
> we are on release 0.2 (heading for 0.3 now), and have less stringent
> back-compat
> requirements, so we are overhauling our linear apis (read: even user-facing
> interface changes) to take advantage of useful parts of Colt, and are
> planning on
> using our Colt fork as the underlying implementation.
>
> Commons-math expressed that changing linear APIs is not something they can
> do,
> given the maturity of their library, so where would Colt *go* in c-math?
> It's own
> submodule, having its own eigendecompositions and svd and so forth, running
> parallel to the current c-math impls?  Why?
>
> Who would maintain it and write tests for it, and how do you explain to
> end-users which they should use?
>
>
>
>> On Wed, Dec 9, 2009 at 1:48 PM, Luc Maisonobe <[hidden email]>
>> wrote:
>>> Ted Dunning a écrit :
>>>> Actually, the reason that we have Colt in Mahout is it has proven
>> impossible
>>>> to get changes into commons math.  We really, really wanted to use
>> commons
>>>> math rather than have our own linear algebra package, but it just proved
>>>> impossible and we didn't want to wait forever.
>>> If you really, really wants to use commons math and want changes to be
>>> included, contribute them.
>
> I have submitted patches for the following tickets: MATH-312 (and acceptance
> of that patch blocks my patch for MATH-314), MATH-316 and MATH-317, none
> of which have appear to have had much progress on.  All of my patches come
> with unit tests for new functionality.
>
> On the other hand, when I opened the discussion about extending the
> functions
> package to enable composable functions (MATH-313), I got an entirely hostile
> response, which only tempered as far as "+0" on adding it after discussion.
>
> In particular, my first step at making commons-math something Mahout could
> standardize on for linear work was MATH-312, which I did submit a patch for,
> and revised it many times after discussion about what is acceptable practice
> in c-math.  Not yet applied, months later.  It's probably far out of date
> now...
>
> Similarly, when I tried to ask what the status on decisions on whether to
> adopt
> MTJ or Colt, the statement by Phil was basically that commons-math would not
> adopt anything which had any external dependencies or
> not-easily-human-readable java source (which ruled out MTJ because of f2j
> produced code), and which had to be fully tested and maintained prior to
> adoption (which rules out Colt which has no unit tests yet).

We agreed early on that commons-math was going to be self-contained.
  It is fine to reopen that discussion.  I stated my opinion, which
is to stay away from *required* external dependencies.  I have been
wrong before, and will be wrong again.  Clear arguments can
enlighten me.  I also feel obligated to support the code that we
ship.  Others may disagree with this and feel that it is OK to ship
code that we - the committers voting on the release - cannot debug
or understand.  It will take some very "enlightening" arguments to
get me to agree to releasing code that I can't understand.
Regarding unit tests, the answer is simple - volunteer to write them
and include them in patches.  Code without unit tests is not
complete code. If I commit it, it means that *I* am going to have to
write the unit tests and I am going to do that before committing.
Patches without unit tests will therefore take longer to commit.

Phil

>
> Ted and I weren't making "requests" for other people to do work, we were
> wondering whether even offers to do some of the work would be accepted,
> and for many of the questions/suggestions we had, it seems the desires
> and requirements of the Mahout community were incompatible with those
> of commons-math.
>
>   -jake
>
>
>>  > I think the only change that was proposed and not done because of lack
>>> of consensus was the inclusion of MTJ (and I don't consider the
>>> discussion closed on that topic either, so it may still happen some
>>> day). All the other changes that are desired are simply lacking someone
>>> to do the work. There were proposals to extend the linear algebra API,
>>> proposals to add more support for sparse matrices, proposals to get
>>> partial decomposition ... But sparse contributions (pun intended).
>>>
>>> I try to do what I can, but as you have probably seen have been rather
>>> silent since 2.0 release. For my part, I really, really need help. I
>>> would like to fix the problems in the eigen decomposition and SVD but
>>> need a good kick to get on it, and having only requests and no help is
>>> not really motivating.
>>>
>>> Luc
>>>
>>>> If that problem were solved, then it would be great to depend on commons
>>>> math.  If that problem isn't solved, then there is no way to depend on
>>>> commons math.
>>>>
>>>> On Tue, Dec 8, 2009 at 6:19 AM, Benson Margulies <[hidden email]
>>> wrote:
>>>>> We can't possibly have a dependency on Mahout in the long term. Either
>>>>> we all go shares on code in some other piece of commons, or we end up
>>>>> with two forks, which would be sad.
>>>>>
>>>>> On Tue, Dec 8, 2009 at 8:33 AM, James Carman <
>> [hidden email]>
>>>>> wrote:
>>>>>> I wouldn't like to see a dependency on mahout code in a "commons"
>>>>>> library.  That seems kind of backwards.  If Mahout wants to offload
>>>>>> this stuff, we can move it into a library in commons (which is
>>>>>> typically how stuff used to happen in Jakarta).
>>>>>>
>>>>>> On Tue, Dec 8, 2009 at 8:18 AM, Benson Margulies <
>> [hidden email]>
>>>>> wrote:
>>>>>>> Mahout now has a fork of a portion of the 'category A' portion of the
>>>>>>> CERN colt library forked. The Mahout fork is, of course, in the
>> Mahout
>>>>>>> tree under a Mahout Java package and Maven triple.
>>>>>>>
>>>>>>> I want to use the collections classes from Mahout as the core to a
>> new
>>>>>>> set of commons-primitives classes that do the useful things that GNU
>>>>>>> Trove does.
>>>>>>>
>>>>>>> The classes I want to start from depend on the classes that are in
>> the
>>>>>>> Mahout fork.
>>>>>>>
>>>>>>> As a temporary expedient, I can depend on their there. However, I
>>>>>>> submit that it would be more better if the mathematical code were in
>>>>>>> commons-math. Was this option explored?
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [hidden email]
>>>>>> For additional commands, e-mail: [hidden email]
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [hidden email]
>>>>> For additional commands, e-mail: [hidden email]
>>>>>
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

J.Pietschmann
In reply to this post by Jake Mannix
On 09.12.2009 20:58, Jake Mannix wrote:
> The commons-math linear APIs have been described as effectively locked
> until 3.0, due to back-compat requirements.

Can you give a short summary of the API changes which are necessary
to incorporate and use the functionality you need? Some functionality
I've seen mentioned here could probably be pressed in the existing
API, but I may have missed some details.

J.Pietschmann

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Home for the colt fork)

Ted Dunning
MATH-312, 314, 316 and 317 were the first round.

Some of the necessary changes included:

- sparse iterators for sparse vectors
- view semantics for sub-matrix and sub-vectors
- additional sparse vector types for specialized applications
- introduction of an unbounded sparse matrix/vector that simply remembers
the highest bound set
- introduction of abstract classes to allow off the cuff inner
implementations of virtual vectors
- introduction of additional decomposition classes
- introduction of row and column label abstraction for matrices and vectors
- higher performance implementations

The 5 issues that Jake filed were mostly address the first point.  That
stalled out when he hit resistance to change.

Since then we have adopted Colt as our matrix/linear algebra/collections
implementation and we don't really need any changes to MATH.

On Sat, Dec 12, 2009 at 8:35 AM, J.Pietschmann <[hidden email]> wrote:

> On 09.12.2009 20:58, Jake Mannix wrote:
>
>> The commons-math linear APIs have been described as effectively locked
>> until 3.0, due to back-compat requirements.
>>
>
> Can you give a short summary of the API changes which are necessary
> to incorporate and use the functionality you need? Some functionality
> I've seen mentioned here could probably be pressed in the existing
> API, but I may have missed some details.
>
> J.Pietschmann
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
Ted Dunning, CTO
DeepDyve
Reply | Threaded
Open this post in threaded view
|

Re: [math] getting changes included into commons-math (was Re: Homefor the colt fork)

Bill Barker

----- Original Message -----
From: "Ted Dunning" <[hidden email]>
To: "Commons Developers List" <[hidden email]>
Sent: Saturday, December 12, 2009 11:17 AM
Subject: Re: [math] getting changes included into commons-math (was Re:
Homefor the colt fork)


> MATH-312, 314, 316 and 317 were the first round.
>
> Some of the necessary changes included:
>
> - sparse iterators for sparse vectors
> - view semantics for sub-matrix and sub-vectors
> - additional sparse vector types for specialized applications
> - introduction of an unbounded sparse matrix/vector that simply remembers
> the highest bound set
> - introduction of abstract classes to allow off the cuff inner
> implementations of virtual vectors
> - introduction of additional decomposition classes
> - introduction of row and column label abstraction for matrices and
> vectors
> - higher performance implementations
>
> The 5 issues that Jake filed were mostly address the first point.  That
> stalled out when he hit resistance to change.
>
> Since then we have adopted Colt as our matrix/linear algebra/collections
> implementation and we don't really need any changes to MATH.
>

Except for MATH-314 (which doesn't have a patch), these JIRA issues are
largely implemented in [math] now.  It will probably have to be improved
before a 2.1 release, but works well enough for now.

I'm sorry that you feel that [math] doesn't meet your needs.  However, I'm
grateful to Jake for his contributions that have made [math] a better
project.

> On Sat, Dec 12, 2009 at 8:35 AM, J.Pietschmann <[hidden email]> wrote:
>
>> On 09.12.2009 20:58, Jake Mannix wrote:
>>
>>> The commons-math linear APIs have been described as effectively locked
>>> until 3.0, due to back-compat requirements.
>>>
>>
>> Can you give a short summary of the API changes which are necessary
>> to incorporate and use the functionality you need? Some functionality
>> I've seen mentioned here could probably be pressed in the existing
>> API, but I may have missed some details.
>>
>> J.Pietschmann
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>
>
> --
> Ted Dunning, CTO
> DeepDyve
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]