[math][all] Mentoring for Google's Summer of Code program

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

[math][all] Mentoring for Google's Summer of Code program

Phil Steitz
I have volunteered to help Ryan with the proposal below and to serve
as a mentor if it is accepted.  Pls see the links infra and the
general Wiki page (http://code.google.com/summerofcode.html) for more
info on Google's  "Summer of Code".

With Ryan's permission, I am forwarding the proposal.  The content as
stated clearly goes beyond the current scope of [math], but several
items are in scope.

Comments, please.  After a little discussion - including maybe the
inevitable reopening of the "what do we want to be when we grow up" -
assuming others are favorable, I will work with Ryan to get something
suitable onto the Wiki for consideration as one of the apache
projects.  Comments from all commons community members are welcome.

Thanks!

Phil

---------- Forwarded message ----------
From: Phil Steitz <[hidden email]>
Date: Jun 2, 2005 4:50 AM
Subject: [Fwd: Mentoring for Google's Summer of Code program]
To: [hidden email]




-------- Original Message --------
Subject: Mentoring for Google's Summer of Code program
Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
From: Ryan Li <[hidden email]>
To: [hidden email]

Dear Phil,

I'm just wondering if you or other developers of the The Jakarta
Commons Math library would be interested in mentoring me for the Google
Summer of Code program (more details at
http://code.google.com/mentfaq.html and
http://code.google.com/summerofcode.html). Just so you know that the
Apache Software Foundation is already a mentoring organization
(http://wiki.apache.org/general/SummerOfCode2005). Please see below for
my draft project proposal (as you can see I've already mentioned the
Jakarta Commons Math library in it and I've put down ASF as my mentor,
so you or other team members will probably be contacted by Google
soon).

Thank you very much for your consideration!

Ryan Du Li
A college student specialising in optimization and numerical analysis

------------------------------

Project description:

Numerical Library for Financial Modelling / Scientific Computation in
Java (with a C# port)

The goal of this project is to develop a reusable toolkit for
developing mathematical models for valuing financial products and risk
management. Due to its numerical intensive nature, it can also be used
effectively in other applications that make uses of highly efficient
numerical algorithms. Specific language features and design patterns
will be used aggressively to allow for high performance and
reusability. The C# port will be made in parallel as the Java version
is developed, a number of features of C# (up to version 2.0) will be
used, in particular operator overloading will be used for all matrix
operations.

Highly efficient numerical algorithms will be implemented in the
following areas:

1. a generic matrix and linear algebra package (including support for
dense and sparse matrices and commonly used decomposition methods), an
existing library might be used for this part of the toolkit.

2. an approximation package, with an emphasis on the support for
B-splines, which is used to approximate curves in general, given a set
of points on the curve. Very useful for any sort of data fitting, and
heavily used in term structure modelling in finance

3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
equations. Useful in a large number of situations in modelling.

3. an optimization package, including linear programming (simplex
method, later also interior point method), quadratic programming,
nonlinear unconstraint/constraint minimization, later will also include
search methods including genetic programming.

4. a simulation package, to provide a framework for running
(Quasi)Monte-Carlo simulations

5. other essential tools, multi-dimensional numerical integration,
Fourier transform, root-solver, interpolation/extrapolation, , special
functions, statistical distributions.


Current Java/C# open-source efforts in this area are limited (with many
projects abandoned or no longer actively maintained),  in particular
useful things like B-Spline PDE-Solver, multi-dimensional numerical
integration, Fourier transform are not addressed in any existing
project I'm aware of (including most commercial ones). Also usually not
the most robust & efficient implementation is used whenever a routine
does exist, commercial projects have a significant advantage in this
respect.

Some of the code I've written for past school projects (I am a maths
student specialising in optimization and numerical analysis) in the
past will be adapted for various part of the toolkit. It is hoped that
by the end of summer the main components of the library will be ready
for production use, and it will be actively developed and maintained
afterwards.

I've put down Apache Software Foundation as my sponsor as I noted that
they have a Commons-Math project
(http://jakarta.apache.org/commons/math/) to which my project would
complement very nicely.

------------------------------




__________________________________
Discover Yahoo!
Have fun online with music videos, cool games, IM and more. Check it out!
http://discover.yahoo.com/online.html

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Simon Kitching
Hi Phil/Ryan,

In general this proposal sounds like an excellent idea to me.

I expect the mathematics community is the sort that would be willing to
form a self-supporting community around a tool once it has shown itself
to be useable. So the issues of having developers around to
support/continue the work once started doesn't seem likely to be a
problem. The main issue is getting "bootstrapped" into a tool that
people are then interested in building on; math seemed to be getting
there but Ryan's proposal seems an excellent way to move that along.

The only potential issue is that it will need a couple of reasonably
dedicated Mentors, as generic Java coders aren't going to be much use
reviewing Ryan's work on this. But if you (Phil) are willing to do this
then I'm all for Ryan's proposal.

Maybe eventually commons-math may become apache-math, but for the
"summer of code" style projects it seems much better to have the
development happening inside a reasonable-size community. So although it
may generate a little extra traffic I'm +1 on keeping the activity here
on commons-dev until at least the end of this project.

Regards,

Simon

On Thu, 2005-06-02 at 08:02 -0400, Phil Steitz wrote:

> I have volunteered to help Ryan with the proposal below and to serve
> as a mentor if it is accepted.  Pls see the links infra and the
> general Wiki page (http://code.google.com/summerofcode.html) for more
> info on Google's  "Summer of Code".
>
> With Ryan's permission, I am forwarding the proposal.  The content as
> stated clearly goes beyond the current scope of [math], but several
> items are in scope.
>
> Comments, please.  After a little discussion - including maybe the
> inevitable reopening of the "what do we want to be when we grow up" -
> assuming others are favorable, I will work with Ryan to get something
> suitable onto the Wiki for consideration as one of the apache
> projects.  Comments from all commons community members are welcome.
>
> Thanks!
>
> Phil
>
> ---------- Forwarded message ----------
> From: Phil Steitz <[hidden email]>
> Date: Jun 2, 2005 4:50 AM
> Subject: [Fwd: Mentoring for Google's Summer of Code program]
> To: [hidden email]
>
>
>
>
> -------- Original Message --------
> Subject: Mentoring for Google's Summer of Code program
> Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> From: Ryan Li <[hidden email]>
> To: [hidden email]
>
> Dear Phil,
>
> I'm just wondering if you or other developers of the The Jakarta
> Commons Math library would be interested in mentoring me for the Google
> Summer of Code program (more details at
> http://code.google.com/mentfaq.html and
> http://code.google.com/summerofcode.html). Just so you know that the
> Apache Software Foundation is already a mentoring organization
> (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> my draft project proposal (as you can see I've already mentioned the
> Jakarta Commons Math library in it and I've put down ASF as my mentor,
> so you or other team members will probably be contacted by Google
> soon).
>
> Thank you very much for your consideration!
>
> Ryan Du Li
> A college student specialising in optimization and numerical analysis
>
> ------------------------------
>
> Project description:
>
> Numerical Library for Financial Modelling / Scientific Computation in
> Java (with a C# port)
>
> The goal of this project is to develop a reusable toolkit for
> developing mathematical models for valuing financial products and risk
> management. Due to its numerical intensive nature, it can also be used
> effectively in other applications that make uses of highly efficient
> numerical algorithms. Specific language features and design patterns
> will be used aggressively to allow for high performance and
> reusability. The C# port will be made in parallel as the Java version
> is developed, a number of features of C# (up to version 2.0) will be
> used, in particular operator overloading will be used for all matrix
> operations.
>
> Highly efficient numerical algorithms will be implemented in the
> following areas:
>
> 1. a generic matrix and linear algebra package (including support for
> dense and sparse matrices and commonly used decomposition methods), an
> existing library might be used for this part of the toolkit.
>
> 2. an approximation package, with an emphasis on the support for
> B-splines, which is used to approximate curves in general, given a set
> of points on the curve. Very useful for any sort of data fitting, and
> heavily used in term structure modelling in finance
>
> 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> equations. Useful in a large number of situations in modelling.
>
> 3. an optimization package, including linear programming (simplex
> method, later also interior point method), quadratic programming,
> nonlinear unconstraint/constraint minimization, later will also include
> search methods including genetic programming.
>
> 4. a simulation package, to provide a framework for running
> (Quasi)Monte-Carlo simulations
>
> 5. other essential tools, multi-dimensional numerical integration,
> Fourier transform, root-solver, interpolation/extrapolation, , special
> functions, statistical distributions.
>
>
> Current Java/C# open-source efforts in this area are limited (with many
> projects abandoned or no longer actively maintained),  in particular
> useful things like B-Spline PDE-Solver, multi-dimensional numerical
> integration, Fourier transform are not addressed in any existing
> project I'm aware of (including most commercial ones). Also usually not
> the most robust & efficient implementation is used whenever a routine
> does exist, commercial projects have a significant advantage in this
> respect.
>
> Some of the code I've written for past school projects (I am a maths
> student specialising in optimization and numerical analysis) in the
> past will be adapted for various part of the toolkit. It is hoped that
> by the end of summer the main components of the library will be ready
> for production use, and it will be actively developed and maintained
> afterwards.
>
> I've put down Apache Software Foundation as my sponsor as I noted that
> they have a Commons-Math project
> (http://jakarta.apache.org/commons/math/) to which my project would
> complement very nicely.
>
> ------------------------------
>
>
>
>
> __________________________________
> Discover Yahoo!
> Have fun online with music videos, cool games, IM and more. Check it out!
> http://discover.yahoo.com/online.html
>
> ---------------------------------------------------------------------
> 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][all] Mentoring for Google's Summer of Code program

Al Chou
In reply to this post by Phil Steitz
Questions of scope of Commons-Math aside <gasp>, what is the scope of the
summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
you remove the parts that aren't currently in scope for Commons-Math.  If you
intend to stay true to Apache's charter, the code will have to be developed
firsthand, not copied from any other source, unless the license of the source
is compatible or the author(s) are amenable to adding an Apache-compatible
alternative license to their code or changing over to an Apache-compatible
license.  Coding that much from scratch and providing JUnit tests will be a
heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
skepticism, but code developed for coursework is unlikely to be as bulletproof
as the proposal aims for.

Also, specifically what parts of the proposal are not already addressed by
existing libraries such as Colt?  I thought we were over the licensing hurdle
for Colt, so anything it already does probably should not be duplicated by code
newly written for the proposed project.

All the above said, I'm not trying to be discouraging, and in fact I would be
willing to participate in mentoring (I'll probably learn something new
myself!).  I just want reasonable expectations and goals to be set.  And
perhaps we can all ride the wave of youthful exuberance to grow a library that
looks like the beginning of an "Apache-Math-Java".


Al


--- Phil Steitz <[hidden email]> wrote:

> I have volunteered to help Ryan with the proposal below and to serve
> as a mentor if it is accepted.  Pls see the links infra and the
> general Wiki page (http://code.google.com/summerofcode.html) for more
> info on Google's  "Summer of Code".
>
> With Ryan's permission, I am forwarding the proposal.  The content as
> stated clearly goes beyond the current scope of [math], but several
> items are in scope.
>
> Comments, please.  After a little discussion - including maybe the
> inevitable reopening of the "what do we want to be when we grow up" -
> assuming others are favorable, I will work with Ryan to get something
> suitable onto the Wiki for consideration as one of the apache
> projects.  Comments from all commons community members are welcome.
>
> Thanks!
>
> Phil
>
> ---------- Forwarded message ----------
> From: Phil Steitz <[hidden email]>
> Date: Jun 2, 2005 4:50 AM
> Subject: [Fwd: Mentoring for Google's Summer of Code program]
> To: [hidden email]
>
>
>
>
> -------- Original Message --------
> Subject: Mentoring for Google's Summer of Code program
> Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> From: Ryan Li <[hidden email]>
> To: [hidden email]
>
> Dear Phil,
>
> I'm just wondering if you or other developers of the The Jakarta
> Commons Math library would be interested in mentoring me for the Google
> Summer of Code program (more details at
> http://code.google.com/mentfaq.html and
> http://code.google.com/summerofcode.html). Just so you know that the
> Apache Software Foundation is already a mentoring organization
> (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> my draft project proposal (as you can see I've already mentioned the
> Jakarta Commons Math library in it and I've put down ASF as my mentor,
> so you or other team members will probably be contacted by Google
> soon).
>
> Thank you very much for your consideration!
>
> Ryan Du Li
> A college student specialising in optimization and numerical analysis
>
> ------------------------------
>
> Project description:
>
> Numerical Library for Financial Modelling / Scientific Computation in
> Java (with a C# port)
>
> The goal of this project is to develop a reusable toolkit for
> developing mathematical models for valuing financial products and risk
> management. Due to its numerical intensive nature, it can also be used
> effectively in other applications that make uses of highly efficient
> numerical algorithms. Specific language features and design patterns
> will be used aggressively to allow for high performance and
> reusability. The C# port will be made in parallel as the Java version
> is developed, a number of features of C# (up to version 2.0) will be
> used, in particular operator overloading will be used for all matrix
> operations.
>
> Highly efficient numerical algorithms will be implemented in the
> following areas:
>
> 1. a generic matrix and linear algebra package (including support for
> dense and sparse matrices and commonly used decomposition methods), an
> existing library might be used for this part of the toolkit.
>
> 2. an approximation package, with an emphasis on the support for
> B-splines, which is used to approximate curves in general, given a set
> of points on the curve. Very useful for any sort of data fitting, and
> heavily used in term structure modelling in finance
>
> 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> equations. Useful in a large number of situations in modelling.
>
> 3. an optimization package, including linear programming (simplex
> method, later also interior point method), quadratic programming,
> nonlinear unconstraint/constraint minimization, later will also include
> search methods including genetic programming.
>
> 4. a simulation package, to provide a framework for running
> (Quasi)Monte-Carlo simulations
>
> 5. other essential tools, multi-dimensional numerical integration,
> Fourier transform, root-solver, interpolation/extrapolation, , special
> functions, statistical distributions.
>
>
> Current Java/C# open-source efforts in this area are limited (with many
> projects abandoned or no longer actively maintained),  in particular
> useful things like B-Spline PDE-Solver, multi-dimensional numerical
> integration, Fourier transform are not addressed in any existing
> project I'm aware of (including most commercial ones). Also usually not
> the most robust & efficient implementation is used whenever a routine
> does exist, commercial projects have a significant advantage in this
> respect.
>
> Some of the code I've written for past school projects (I am a maths
> student specialising in optimization and numerical analysis) in the
> past will be adapted for various part of the toolkit. It is hoped that
> by the end of summer the main components of the library will be ready
> for production use, and it will be actively developed and maintained
> afterwards.
>
> I've put down Apache Software Foundation as my sponsor as I noted that
> they have a Commons-Math project
> (http://jakarta.apache.org/commons/math/) to which my project would
> complement very nicely.

Albert Davidson Chou

    Get answers to Mac questions at http://www.Mac-Mgrs.org/ .

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com 

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Rory Winston-3
In reply to this post by Phil Steitz
I agree, it is a hugely ambitious project. Which is not necessarily a bad thing. I think a good start would be to qualify the scope of the project sooner rather than later, and get a firm idea for exactly what will (hopefully) be achieved.

"Jakarta Commons Developers List" <[hidden email]> wrote:

>
> Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
> you remove the parts that aren't currently in scope for Commons-Math.  If you
> intend to stay true to Apache's charter, the code will have to be developed
> firsthand, not copied from any other source, unless the license of the source
> is compatible or the author(s) are amenable to adding an Apache-compatible
> alternative license to their code or changing over to an Apache-compatible
> license.  Coding that much from scratch and providing JUnit tests will be a
> heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
> skepticism, but code developed for coursework is unlikely to be as bulletproof
> as the proposal aims for.
>
> Also, specifically what parts of the proposal are not already addressed by
> existing libraries such as Colt?  I thought we were over the licensing hurdle
> for Colt, so anything it already does probably should not be duplicated by code
> newly written for the proposed project.
>
> All the above said, I'm not trying to be discouraging, and in fact I would be
> willing to participate in mentoring (I'll probably learn something new
> myself!).  I just want reasonable expectations and goals to be set.  And
> perhaps we can all ride the wave of youthful exuberance to grow a library that
> looks like the beginning of an "Apache-Math-Java".
>
>
> Al
>
>
> --- Phil Steitz <[hidden email]> wrote:
> > I have volunteered to help Ryan with the proposal below and to serve
> > as a mentor if it is accepted.  Pls see the links infra and the
> > general Wiki page (http://code.google.com/summerofcode.html) for more
> > info on Google's  "Summer of Code".
> >
> > With Ryan's permission, I am forwarding the proposal.  The content as
> > stated clearly goes beyond the current scope of [math], but several
> > items are in scope.
> >
> > Comments, please.  After a little discussion - including maybe the
> > inevitable reopening of the "what do we want to be when we grow up" -
> > assuming others are favorable, I will work with Ryan to get something
> > suitable onto the Wiki for consideration as one of the apache
> > projects.  Comments from all commons community members are welcome.
> >
> > Thanks!
> >
> > Phil
> >
> > ---------- Forwarded message ----------
> > From: Phil Steitz <[hidden email]>
> > Date: Jun 2, 2005 4:50 AM
> > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > To: [hidden email]
> >
> >
> >
> >
> > -------- Original Message --------
> > Subject: Mentoring for Google's Summer of Code program
> > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > From: Ryan Li <[hidden email]>
> > To: [hidden email]
> >
> > Dear Phil,
> >
> > I'm just wondering if you or other developers of the The Jakarta
> > Commons Math library would be interested in mentoring me for the Google
> > Summer of Code program (more details at
> > http://code.google.com/mentfaq.html and
> > http://code.google.com/summerofcode.html). Just so you know that the
> > Apache Software Foundation is already a mentoring organization
> > (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> > my draft project proposal (as you can see I've already mentioned the
> > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > so you or other team members will probably be contacted by Google
> > soon).
> >
> > Thank you very much for your consideration!
> >
> > Ryan Du Li
> > A college student specialising in optimization and numerical analysis
> >
> > ------------------------------
> >
> > Project description:
> >
> > Numerical Library for Financial Modelling / Scientific Computation in
> > Java (with a C# port)
> >
> > The goal of this project is to develop a reusable toolkit for
> > developing mathematical models for valuing financial products and risk
> > management. Due to its numerical intensive nature, it can also be used
> > effectively in other applications that make uses of highly efficient
> > numerical algorithms. Specific language features and design patterns
> > will be used aggressively to allow for high performance and
> > reusability. The C# port will be made in parallel as the Java version
> > is developed, a number of features of C# (up to version 2.0) will be
> > used, in particular operator overloading will be used for all matrix
> > operations.
> >
> > Highly efficient numerical algorithms will be implemented in the
> > following areas:
> >
> > 1. a generic matrix and linear algebra package (including support for
> > dense and sparse matrices and commonly used decomposition methods), an
> > existing library might be used for this part of the toolkit.
> >
> > 2. an approximation package, with an emphasis on the support for
> > B-splines, which is used to approximate curves in general, given a set
> > of points on the curve. Very useful for any sort of data fitting, and
> > heavily used in term structure modelling in finance
> >
> > 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> > equations. Useful in a large number of situations in modelling.
> >
> > 3. an optimization package, including linear programming (simplex
> > method, later also interior point method), quadratic programming,
> > nonlinear unconstraint/constraint minimization, later will also include
> > search methods including genetic programming.
> >
> > 4. a simulation package, to provide a framework for running
> > (Quasi)Monte-Carlo simulations
> >
> > 5. other essential tools, multi-dimensional numerical integration,
> > Fourier transform, root-solver, interpolation/extrapolation, , special
> > functions, statistical distributions.
> >
> >
> > Current Java/C# open-source efforts in this area are limited (with many
> > projects abandoned or no longer actively maintained),  in particular
> > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > integration, Fourier transform are not addressed in any existing
> > project I'm aware of (including most commercial ones). Also usually not
> > the most robust & efficient implementation is used whenever a routine
> > does exist, commercial projects have a significant advantage in this
> > respect.
> >
> > Some of the code I've written for past school projects (I am a maths
> > student specialising in optimization and numerical analysis) in the
> > past will be adapted for various part of the toolkit. It is hoped that
> > by the end of summer the main components of the library will be ready
> > for production use, and it will be actively developed and maintained
> > afterwards.
> >
> > I've put down Apache Software Foundation as my sponsor as I noted that
> > they have a Commons-Math project
> > (http://jakarta.apache.org/commons/math/) to which my project would
> > complement very nicely.
>
> Albert Davidson Chou
>
>     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com 
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>



_________________________________________________________________
eircom broadband is now up to four times faster than before.
Phone 1850 73 00 73 or visit http://home.eircom.net/broadbandoffer



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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Rory Winston-3
In reply to this post by Phil Steitz
I agree, it is a hugely ambitious project. Which is not necessarily a bad thing. I think a good start would be to qualify the scope of the project sooner rather than later, and get a firm idea for exactly what will (hopefully) be achieved.

"Jakarta Commons Developers List" <[hidden email]> wrote:

>
> Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
> you remove the parts that aren't currently in scope for Commons-Math.  If you
> intend to stay true to Apache's charter, the code will have to be developed
> firsthand, not copied from any other source, unless the license of the source
> is compatible or the author(s) are amenable to adding an Apache-compatible
> alternative license to their code or changing over to an Apache-compatible
> license.  Coding that much from scratch and providing JUnit tests will be a
> heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
> skepticism, but code developed for coursework is unlikely to be as bulletproof
> as the proposal aims for.
>
> Also, specifically what parts of the proposal are not already addressed by
> existing libraries such as Colt?  I thought we were over the licensing hurdle
> for Colt, so anything it already does probably should not be duplicated by code
> newly written for the proposed project.
>
> All the above said, I'm not trying to be discouraging, and in fact I would be
> willing to participate in mentoring (I'll probably learn something new
> myself!).  I just want reasonable expectations and goals to be set.  And
> perhaps we can all ride the wave of youthful exuberance to grow a library that
> looks like the beginning of an "Apache-Math-Java".
>
>
> Al
>
>
> --- Phil Steitz <[hidden email]> wrote:
> > I have volunteered to help Ryan with the proposal below and to serve
> > as a mentor if it is accepted.  Pls see the links infra and the
> > general Wiki page (http://code.google.com/summerofcode.html) for more
> > info on Google's  "Summer of Code".
> >
> > With Ryan's permission, I am forwarding the proposal.  The content as
> > stated clearly goes beyond the current scope of [math], but several
> > items are in scope.
> >
> > Comments, please.  After a little discussion - including maybe the
> > inevitable reopening of the "what do we want to be when we grow up" -
> > assuming others are favorable, I will work with Ryan to get something
> > suitable onto the Wiki for consideration as one of the apache
> > projects.  Comments from all commons community members are welcome.
> >
> > Thanks!
> >
> > Phil
> >
> > ---------- Forwarded message ----------
> > From: Phil Steitz <[hidden email]>
> > Date: Jun 2, 2005 4:50 AM
> > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > To: [hidden email]
> >
> >
> >
> >
> > -------- Original Message --------
> > Subject: Mentoring for Google's Summer of Code program
> > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > From: Ryan Li <[hidden email]>
> > To: [hidden email]
> >
> > Dear Phil,
> >
> > I'm just wondering if you or other developers of the The Jakarta
> > Commons Math library would be interested in mentoring me for the Google
> > Summer of Code program (more details at
> > http://code.google.com/mentfaq.html and
> > http://code.google.com/summerofcode.html). Just so you know that the
> > Apache Software Foundation is already a mentoring organization
> > (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> > my draft project proposal (as you can see I've already mentioned the
> > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > so you or other team members will probably be contacted by Google
> > soon).
> >
> > Thank you very much for your consideration!
> >
> > Ryan Du Li
> > A college student specialising in optimization and numerical analysis
> >
> > ------------------------------
> >
> > Project description:
> >
> > Numerical Library for Financial Modelling / Scientific Computation in
> > Java (with a C# port)
> >
> > The goal of this project is to develop a reusable toolkit for
> > developing mathematical models for valuing financial products and risk
> > management. Due to its numerical intensive nature, it can also be used
> > effectively in other applications that make uses of highly efficient
> > numerical algorithms. Specific language features and design patterns
> > will be used aggressively to allow for high performance and
> > reusability. The C# port will be made in parallel as the Java version
> > is developed, a number of features of C# (up to version 2.0) will be
> > used, in particular operator overloading will be used for all matrix
> > operations.
> >
> > Highly efficient numerical algorithms will be implemented in the
> > following areas:
> >
> > 1. a generic matrix and linear algebra package (including support for
> > dense and sparse matrices and commonly used decomposition methods), an
> > existing library might be used for this part of the toolkit.
> >
> > 2. an approximation package, with an emphasis on the support for
> > B-splines, which is used to approximate curves in general, given a set
> > of points on the curve. Very useful for any sort of data fitting, and
> > heavily used in term structure modelling in finance
> >
> > 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> > equations. Useful in a large number of situations in modelling.
> >
> > 3. an optimization package, including linear programming (simplex
> > method, later also interior point method), quadratic programming,
> > nonlinear unconstraint/constraint minimization, later will also include
> > search methods including genetic programming.
> >
> > 4. a simulation package, to provide a framework for running
> > (Quasi)Monte-Carlo simulations
> >
> > 5. other essential tools, multi-dimensional numerical integration,
> > Fourier transform, root-solver, interpolation/extrapolation, , special
> > functions, statistical distributions.
> >
> >
> > Current Java/C# open-source efforts in this area are limited (with many
> > projects abandoned or no longer actively maintained),  in particular
> > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > integration, Fourier transform are not addressed in any existing
> > project I'm aware of (including most commercial ones). Also usually not
> > the most robust & efficient implementation is used whenever a routine
> > does exist, commercial projects have a significant advantage in this
> > respect.
> >
> > Some of the code I've written for past school projects (I am a maths
> > student specialising in optimization and numerical analysis) in the
> > past will be adapted for various part of the toolkit. It is hoped that
> > by the end of summer the main components of the library will be ready
> > for production use, and it will be actively developed and maintained
> > afterwards.
> >
> > I've put down Apache Software Foundation as my sponsor as I noted that
> > they have a Commons-Math project
> > (http://jakarta.apache.org/commons/math/) to which my project would
> > complement very nicely.
>
> Albert Davidson Chou
>
>     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com 
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>



_________________________________________________________________
eircom broadband is now up to four times faster than before.
Phone 1850 73 00 73 or visit http://home.eircom.net/broadbandoffer



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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Ryan Li
In reply to this post by Phil Steitz
Hi all,

Many thanks for your comments so far (please keep them coming!). I do
realise that the proposal will probably take a number of specialised
numerical analysts a few months if not years to complete. I'm all for
cutting things down a bit (a lot rather), with an initial focus on the
more classical methods for which efficient algorithms are well
documented and can be implemented relatively easily. Seeing
commons-math as a generic and compact library based on which other
more sophisticated code can be written, I think the following could be
useful:

        - performance tuning for matrix computation and add more decomposition methods
        - univariate integration (Romberg is what I have in mind)
        - true polynomial interpolation, as opposed to spline, it will be
usually be used by other higher level numerical algorithms e.g.
Romberg integration or other Richardson extrapolation procedures
        - univariate minimization
        - robust derivative-free multidimensional optimization (downhill simplex)
        - B-spline
        - ODE solver
        - (maybe?) Gaussian quadratures

and then possibly move to the more ambitious part. At some point I
would also like to add more special functions, and optimise the
performance of existing ones. Please let me know what you think about
this plan.

I am actually a happy user of Colt myself, to me it seems that it
focuses on the data structure side of numerical computation (which it
does an excellent job), what I find it lacks specifically are the
algorithm side of things like root finding, interpolation,
integration, optimization (and possibly) ODE solver, the performance
of some of the special functions also left something to be desired
after they replaced the old IMSL code. There are scattered efforts on
all the things mentioned above, some seem to be quite mature but most
are experimental, I think it would be nice to have them all in one
library (maybe just adapt if license compatible and code reasonably
stable).

As for code quality, I'll make sure I do extensive research into the
literatures and (probably more important) existing implementations in
whatever language before getting my hands on the keyboard, part of the
reason I wanted to start such a project is that when I was doing
coursework, I referenced many books and papers only to realise that
some of the ideas were clearly better than what I was suggested to do
in the project!


Best regards,

Ryan


On 6/3/05, Rory Winston <[hidden email]> wrote:

> I agree, it is a hugely ambitious project. Which is not necessarily a bad thing. I think a good start would be to qualify the scope of the project sooner rather than later, and get a firm idea for exactly what will (hopefully) be achieved.
>
> "Jakarta Commons Developers List" <[hidden email]> wrote:
>
> >
> > Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> > summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
> > you remove the parts that aren't currently in scope for Commons-Math.  If you
> > intend to stay true to Apache's charter, the code will have to be developed
> > firsthand, not copied from any other source, unless the license of the source
> > is compatible or the author(s) are amenable to adding an Apache-compatible
> > alternative license to their code or changing over to an Apache-compatible
> > license.  Coding that much from scratch and providing JUnit tests will be a
> > heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
> > skepticism, but code developed for coursework is unlikely to be as bulletproof
> > as the proposal aims for.
> >
> > Also, specifically what parts of the proposal are not already addressed by
> > existing libraries such as Colt?  I thought we were over the licensing hurdle
> > for Colt, so anything it already does probably should not be duplicated by code
> > newly written for the proposed project.
> >
> > All the above said, I'm not trying to be discouraging, and in fact I would be
> > willing to participate in mentoring (I'll probably learn something new
> > myself!).  I just want reasonable expectations and goals to be set.  And
> > perhaps we can all ride the wave of youthful exuberance to grow a library that
> > looks like the beginning of an "Apache-Math-Java".
> >
> >
> > Al
> >
> >
> > --- Phil Steitz <[hidden email]> wrote:
> > > I have volunteered to help Ryan with the proposal below and to serve
> > > as a mentor if it is accepted.  Pls see the links infra and the
> > > general Wiki page (http://code.google.com/summerofcode.html) for more
> > > info on Google's  "Summer of Code".
> > >
> > > With Ryan's permission, I am forwarding the proposal.  The content as
> > > stated clearly goes beyond the current scope of [math], but several
> > > items are in scope.
> > >
> > > Comments, please.  After a little discussion - including maybe the
> > > inevitable reopening of the "what do we want to be when we grow up" -
> > > assuming others are favorable, I will work with Ryan to get something
> > > suitable onto the Wiki for consideration as one of the apache
> > > projects.  Comments from all commons community members are welcome.
> > >
> > > Thanks!
> > >
> > > Phil
> > >
> > > ---------- Forwarded message ----------
> > > From: Phil Steitz <[hidden email]>
> > > Date: Jun 2, 2005 4:50 AM
> > > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > > To: [hidden email]
> > >
> > >
> > >
> > >
> > > -------- Original Message --------
> > > Subject: Mentoring for Google's Summer of Code program
> > > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > > From: Ryan Li <[hidden email]>
> > > To: [hidden email]
> > >
> > > Dear Phil,
> > >
> > > I'm just wondering if you or other developers of the The Jakarta
> > > Commons Math library would be interested in mentoring me for the Google
> > > Summer of Code program (more details at
> > > http://code.google.com/mentfaq.html and
> > > http://code.google.com/summerofcode.html). Just so you know that the
> > > Apache Software Foundation is already a mentoring organization
> > > (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> > > my draft project proposal (as you can see I've already mentioned the
> > > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > > so you or other team members will probably be contacted by Google
> > > soon).
> > >
> > > Thank you very much for your consideration!
> > >
> > > Ryan Du Li
> > > A college student specialising in optimization and numerical analysis
> > >
> > > ------------------------------
> > >
> > > Project description:
> > >
> > > Numerical Library for Financial Modelling / Scientific Computation in
> > > Java (with a C# port)
> > >
> > > The goal of this project is to develop a reusable toolkit for
> > > developing mathematical models for valuing financial products and risk
> > > management. Due to its numerical intensive nature, it can also be used
> > > effectively in other applications that make uses of highly efficient
> > > numerical algorithms. Specific language features and design patterns
> > > will be used aggressively to allow for high performance and
> > > reusability. The C# port will be made in parallel as the Java version
> > > is developed, a number of features of C# (up to version 2.0) will be
> > > used, in particular operator overloading will be used for all matrix
> > > operations.
> > >
> > > Highly efficient numerical algorithms will be implemented in the
> > > following areas:
> > >
> > > 1. a generic matrix and linear algebra package (including support for
> > > dense and sparse matrices and commonly used decomposition methods), an
> > > existing library might be used for this part of the toolkit.
> > >
> > > 2. an approximation package, with an emphasis on the support for
> > > B-splines, which is used to approximate curves in general, given a set
> > > of points on the curve. Very useful for any sort of data fitting, and
> > > heavily used in term structure modelling in finance
> > >
> > > 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> > > equations. Useful in a large number of situations in modelling.
> > >
> > > 3. an optimization package, including linear programming (simplex
> > > method, later also interior point method), quadratic programming,
> > > nonlinear unconstraint/constraint minimization, later will also include
> > > search methods including genetic programming.
> > >
> > > 4. a simulation package, to provide a framework for running
> > > (Quasi)Monte-Carlo simulations
> > >
> > > 5. other essential tools, multi-dimensional numerical integration,
> > > Fourier transform, root-solver, interpolation/extrapolation, , special
> > > functions, statistical distributions.
> > >
> > >
> > > Current Java/C# open-source efforts in this area are limited (with many
> > > projects abandoned or no longer actively maintained),  in particular
> > > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > > integration, Fourier transform are not addressed in any existing
> > > project I'm aware of (including most commercial ones). Also usually not
> > > the most robust & efficient implementation is used whenever a routine
> > > does exist, commercial projects have a significant advantage in this
> > > respect.
> > >
> > > Some of the code I've written for past school projects (I am a maths
> > > student specialising in optimization and numerical analysis) in the
> > > past will be adapted for various part of the toolkit. It is hoped that
> > > by the end of summer the main components of the library will be ready
> > > for production use, and it will be actively developed and maintained
> > > afterwards.
> > >
> > > I've put down Apache Software Foundation as my sponsor as I noted that
> > > they have a Commons-Math project
> > > (http://jakarta.apache.org/commons/math/) to which my project would
> > > complement very nicely.
> >
> > Albert Davidson Chou
> >
> >     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
>
>
> _________________________________________________________________
> eircom broadband is now up to four times faster than before.
> Phone 1850 73 00 73 or visit http://home.eircom.net/broadbandoffer
>
>
>
> ---------------------------------------------------------------------
> 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][all] Mentoring for Google's Summer of Code program

robert burrell donkin
In reply to this post by Al Chou
On Thu, 2005-06-02 at 22:58 -0700, Al Chou wrote:
> Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
> you remove the parts that aren't currently in scope for Commons-Math.  

i think that it would be useful to separate the question of scope from
the question of mentoring and community.

i definitely agree that the commons-math group is the right one for
mentoring this code. i also agree (with simon) that jakarta commons is
the best community for growing this code (whilst math remains here, of
course).
 
in terms of scope, IMHO there are two separate questions: is the
proposed codebase in scope for the jakarta-commons and is it in scope
for the commons-math component. opinions on these questions welcomed :)

if the codebase is not in scope for jakarta-commons then i'd be willing
to sponsor this as an incubator project (when it is ready). it could be
developed in the sandbox until then.

if the codebase is in scope for jakarta-commons but not in scope for
commons-math then one solution would be to factor the out-of-scope code
into a separate component with it's own scope.

so, i see no reason why the project couldn't be pushed forward whilst
the questions of scope are argued about.

> If you
> intend to stay true to Apache's charter, the code will have to be developed
> firsthand, not copied from any other source, unless the license of the source
> is compatible or the author(s) are amenable to adding an Apache-compatible
> alternative license to their code or changing over to an Apache-compatible
> license.  Coding that much from scratch and providing JUnit tests will be a
> heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
> skepticism, but code developed for coursework is unlikely to be as bulletproof
> as the proposal aims for.

it does sound ambitious (but there's nothing wrong with that)

IMHO one of the first jobs of the mentors will need to do will be to
study the proposal and create a realistic core tasks together with a
more ambitious list of additional tasks. (this should ensure that ryan
is not unfairly financially penalised for his ambition.) it's hard to
estimate a priori what the quality and quantity of any code produced by
ryan will be but i agree that the code will need to satisfy the current
standards especially in the area of development best practice. the
mentors will need to work with ryan to ensure that he knows what's
expected particular when it comes to using code developed by others.

> Also, specifically what parts of the proposal are not already addressed by
> existing libraries such as Colt?  I thought we were over the licensing hurdle
> for Colt, so anything it already does probably should not be duplicated by code
> newly written for the proposed project.
>
> All the above said, I'm not trying to be discouraging, and in fact I would be
> willing to participate in mentoring (I'll probably learn something new
> myself!).  I just want reasonable expectations and goals to be set.  And
> perhaps we can all ride the wave of youthful exuberance to grow a library that
> looks like the beginning of an "Apache-Math-Java".

+1

:)

- robert


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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Al Chou
In reply to this post by Ryan Li
Ryan,

Your list below seems much more achievable.  I suggest cutting it even a bit
further, say, dropping Gaussian quadrature as you already hint at (because
implementing it would drag in some of the special functions that you note we
don't have) and the ODE solver (unless all you mean is a simple initial value
problem integrator, say 4th order Runge-Kutta).  I'm not familiar with B-spline
or downhill simplex; univariate minimization is very close to root finding, as
I'm sure you know, so I don't have a problem with including that.  And to
actually expand the scope, maybe we could add rational function interpolation
as well as polynomial.

To keep a flavor of typical software development in this project, I would also
be interested to see the code be evolved from simple/naive implementations to
the more sophisticated ones, at least for some parts of the project.
Implementing a sophisticated algorithm from a reference work may feel good, but
I argue you'll learn more about both the mathematics and about software
development by taking baby steps and experiencing for yourself the reasons the
more sophisticated algorithms became necessary or at least desirable.  In other
words, it's OK to write a naive and slow but correct implementation and then
modify it toward some more sophisticated version.

Finally, I wanted to clarify that I mistyped in my last post:  I meant to say
that providing unit tests might be _less_ onerous if the code were done via
TDD.  Testing an existing algorithm was always a pain to me early in my
graduate career, and I learned through hard experience that it's necessary.
Since then TDD has sprung up, and doing it actually makes writing tests (or
executable examples, to be more accurate) feel good.


Al


--- Ryan Li <[hidden email]> wrote:

> Hi all,
>
> Many thanks for your comments so far (please keep them coming!). I do
> realise that the proposal will probably take a number of specialised
> numerical analysts a few months if not years to complete. I'm all for
> cutting things down a bit (a lot rather), with an initial focus on the
> more classical methods for which efficient algorithms are well
> documented and can be implemented relatively easily. Seeing
> commons-math as a generic and compact library based on which other
> more sophisticated code can be written, I think the following could be
> useful:
>
> - performance tuning for matrix computation and add more decomposition
> methods
> - univariate integration (Romberg is what I have in mind)
> - true polynomial interpolation, as opposed to spline, it will be
> usually be used by other higher level numerical algorithms e.g.
> Romberg integration or other Richardson extrapolation procedures
> - univariate minimization
> - robust derivative-free multidimensional optimization (downhill simplex)
> - B-spline
> - ODE solver
> - (maybe?) Gaussian quadratures
>
> and then possibly move to the more ambitious part. At some point I
> would also like to add more special functions, and optimise the
> performance of existing ones. Please let me know what you think about
> this plan.
>
> I am actually a happy user of Colt myself, to me it seems that it
> focuses on the data structure side of numerical computation (which it
> does an excellent job), what I find it lacks specifically are the
> algorithm side of things like root finding, interpolation,
> integration, optimization (and possibly) ODE solver, the performance
> of some of the special functions also left something to be desired
> after they replaced the old IMSL code. There are scattered efforts on
> all the things mentioned above, some seem to be quite mature but most
> are experimental, I think it would be nice to have them all in one
> library (maybe just adapt if license compatible and code reasonably
> stable).
>
> As for code quality, I'll make sure I do extensive research into the
> literatures and (probably more important) existing implementations in
> whatever language before getting my hands on the keyboard, part of the
> reason I wanted to start such a project is that when I was doing
> coursework, I referenced many books and papers only to realise that
> some of the ideas were clearly better than what I was suggested to do
> in the project!
>
>
> Best regards,
>
> Ryan
>
>
> On 6/3/05, Rory Winston <[hidden email]> wrote:
> > I agree, it is a hugely ambitious project. Which is not necessarily a bad
> thing. I think a good start would be to qualify the scope of the project
> sooner rather than later, and get a firm idea for exactly what will
> (hopefully) be achieved.
> >
> > "Jakarta Commons Developers List" <[hidden email]> wrote:
> >
> > >
> > > Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> > > summer project?  The scope of Ryan's proposal seems mighty ambitious,
> even if
> > > you remove the parts that aren't currently in scope for Commons-Math.  If
> you
> > > intend to stay true to Apache's charter, the code will have to be
> developed
> > > firsthand, not copied from any other source, unless the license of the
> source
> > > is compatible or the author(s) are amenable to adding an
> Apache-compatible
> > > alternative license to their code or changing over to an
> Apache-compatible
> > > license.  Coding that much from scratch and providing JUnit tests will be
> a
> > > heck of a lot of work (maybe a little onerous if you do TDD).  And
> forgive my
> > > skepticism, but code developed for coursework is unlikely to be as
> bulletproof
> > > as the proposal aims for.
> > >
> > > Also, specifically what parts of the proposal are not already addressed
> by
> > > existing libraries such as Colt?  I thought we were over the licensing
> hurdle
> > > for Colt, so anything it already does probably should not be duplicated
> by code
> > > newly written for the proposed project.
> > >
> > > All the above said, I'm not trying to be discouraging, and in fact I
> would be
> > > willing to participate in mentoring (I'll probably learn something new
> > > myself!).  I just want reasonable expectations and goals to be set.  And
> > > perhaps we can all ride the wave of youthful exuberance to grow a library
> that
> > > looks like the beginning of an "Apache-Math-Java".
> > >
> > >
> > > Al
> > >
> > >
> > > --- Phil Steitz <[hidden email]> wrote:
> > > > I have volunteered to help Ryan with the proposal below and to serve
> > > > as a mentor if it is accepted.  Pls see the links infra and the
> > > > general Wiki page (http://code.google.com/summerofcode.html) for more
> > > > info on Google's  "Summer of Code".
> > > >
> > > > With Ryan's permission, I am forwarding the proposal.  The content as
> > > > stated clearly goes beyond the current scope of [math], but several
> > > > items are in scope.
> > > >
> > > > Comments, please.  After a little discussion - including maybe the
> > > > inevitable reopening of the "what do we want to be when we grow up" -
> > > > assuming others are favorable, I will work with Ryan to get something
> > > > suitable onto the Wiki for consideration as one of the apache
> > > > projects.  Comments from all commons community members are welcome.
> > > >
> > > > Thanks!
> > > >
> > > > Phil
> > > >
> > > > ---------- Forwarded message ----------
> > > > From: Phil Steitz <[hidden email]>
> > > > Date: Jun 2, 2005 4:50 AM
> > > > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > > > To: [hidden email]
> > > >
> > > >
> > > >
> > > >
> > > > -------- Original Message --------
> > > > Subject: Mentoring for Google's Summer of Code program
> > > > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > > > From: Ryan Li <[hidden email]>
> > > > To: [hidden email]
> > > >
> > > > Dear Phil,
> > > >
> > > > I'm just wondering if you or other developers of the The Jakarta
> > > > Commons Math library would be interested in mentoring me for the Google
> > > > Summer of Code program (more details at
> > > > http://code.google.com/mentfaq.html and
> > > > http://code.google.com/summerofcode.html). Just so you know that the
> > > > Apache Software Foundation is already a mentoring organization
> > > > (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> > > > my draft project proposal (as you can see I've already mentioned the
> > > > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > > > so you or other team members will probably be contacted by Google
> > > > soon).
> > > >
> > > > Thank you very much for your consideration!
> > > >
> > > > Ryan Du Li
> > > > A college student specialising in optimization and numerical analysis
> > > >
> > > > ------------------------------
> > > >
> > > > Project description:
> > > >
> > > > Numerical Library for Financial Modelling / Scientific Computation in
> > > > Java (with a C# port)
> > > >
> > > > The goal of this project is to develop a reusable toolkit for
> > > > developing mathematical models for valuing financial products and risk
> > > > management. Due to its numerical intensive nature, it can also be used
> > > > effectively in other applications that make uses of highly efficient
> > > > numerical algorithms. Specific language features and design patterns
> > > > will be used aggressively to allow for high performance and
> > > > reusability. The C# port will be made in parallel as the Java version
> > > > is developed, a number of features of C# (up to version 2.0) will be
> > > > used, in particular operator overloading will be used for all matrix
> > > > operations.
> > > >
> > > > Highly efficient numerical algorithms will be implemented in the
> > > > following areas:
> > > >
> > > > 1. a generic matrix and linear algebra package (including support for
> > > > dense and sparse matrices and commonly used decomposition methods), an
> > > > existing library might be used for this part of the toolkit.
> > > >
> > > > 2. an approximation package, with an emphasis on the support for
> > > > B-splines, which is used to approximate curves in general, given a set
> > > > of points on the curve. Very useful for any sort of data fitting, and
> > > > heavily used in term structure modelling in finance
> > > >
> > > > 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> > > > equations. Useful in a large number of situations in modelling.
> > > >
> > > > 3. an optimization package, including linear programming (simplex
> > > > method, later also interior point method), quadratic programming,
> > > > nonlinear unconstraint/constraint minimization, later will also include
> > > > search methods including genetic programming.
> > > >
> > > > 4. a simulation package, to provide a framework for running
> > > > (Quasi)Monte-Carlo simulations
> > > >
> > > > 5. other essential tools, multi-dimensional numerical integration,
> > > > Fourier transform, root-solver, interpolation/extrapolation, , special
> > > > functions, statistical distributions.
> > > >
> > > >
> > > > Current Java/C# open-source efforts in this area are limited (with many
> > > > projects abandoned or no longer actively maintained),  in particular
> > > > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > > > integration, Fourier transform are not addressed in any existing
> > > > project I'm aware of (including most commercial ones). Also usually not
> > > > the most robust & efficient implementation is used whenever a routine
> > > > does exist, commercial projects have a significant advantage in this
> > > > respect.
> > > >
> > > > Some of the code I've written for past school projects (I am a maths
> > > > student specialising in optimization and numerical analysis) in the
> > > > past will be adapted for various part of the toolkit. It is hoped that
> > > > by the end of summer the main components of the library will be ready
> > > > for production use, and it will be actively developed and maintained
> > > > afterwards.
> > > >
> > > > I've put down Apache Software Foundation as my sponsor as I noted that
> > > > they have a Commons-Math project
> > > > (http://jakarta.apache.org/commons/math/) to which my project would
> > > > complement very nicely.
> > >
> > > Albert Davidson Chou
> > >
> > >     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com 

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Al Chou
In reply to this post by robert burrell donkin
--- robert burrell donkin <[hidden email]> wrote:

> On Thu, 2005-06-02 at 22:58 -0700, Al Chou wrote:
> > Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> > summer project?  The scope of Ryan's proposal seems mighty ambitious, even
> if
> > you remove the parts that aren't currently in scope for Commons-Math.  
>
> i think that it would be useful to separate the question of scope from
> the question of mentoring and community.
>
> i definitely agree that the commons-math group is the right one for
> mentoring this code. i also agree (with simon) that jakarta commons is
> the best community for growing this code (whilst math remains here, of
> course).

+1


> in terms of scope, IMHO there are two separate questions: is the
> proposed codebase in scope for the jakarta-commons and is it in scope
> for the commons-math component. opinions on these questions welcomed :)
>
> if the codebase is not in scope for jakarta-commons then i'd be willing
> to sponsor this as an incubator project (when it is ready). it could be
> developed in the sandbox until then.
>
> if the codebase is in scope for jakarta-commons but not in scope for
> commons-math then one solution would be to factor the out-of-scope code
> into a separate component with it's own scope.
>
> so, i see no reason why the project couldn't be pushed forward whilst
> the questions of scope are argued about.

I think for the project to succeed in any case, its scope will have to be
constrained quite a lot.  Ryan's post that preceded this one seems quite good
in limiting the scope, and I argue that it's close to being in scope for
Commons-Math now.


> > If you
> > intend to stay true to Apache's charter, the code will have to be developed
> > firsthand, not copied from any other source, unless the license of the
> source
> > is compatible or the author(s) are amenable to adding an Apache-compatible
> > alternative license to their code or changing over to an Apache-compatible
> > license.  Coding that much from scratch and providing JUnit tests will be a
> > heck of a lot of work (maybe a little onerous if you do TDD).  And forgive
> my
> > skepticism, but code developed for coursework is unlikely to be as
> bulletproof
> > as the proposal aims for.
>
> it does sound ambitious (but there's nothing wrong with that)
>
> IMHO one of the first jobs of the mentors will need to do will be to
> study the proposal and create a realistic core tasks together with a
> more ambitious list of additional tasks. (this should ensure that ryan
> is not unfairly financially penalised for his ambition.) it's hard to
> estimate a priori what the quality and quantity of any code produced by
> ryan will be but i agree that the code will need to satisfy the current
> standards especially in the area of development best practice. the
> mentors will need to work with ryan to ensure that he knows what's
> expected particular when it comes to using code developed by others.
>
> > Also, specifically what parts of the proposal are not already addressed by
> > existing libraries such as Colt?  I thought we were over the licensing
> hurdle
> > for Colt, so anything it already does probably should not be duplicated by
> code
> > newly written for the proposed project.
> >
> > All the above said, I'm not trying to be discouraging, and in fact I would
> be
> > willing to participate in mentoring (I'll probably learn something new
> > myself!).  I just want reasonable expectations and goals to be set.  And
> > perhaps we can all ride the wave of youthful exuberance to grow a library
> that
> > looks like the beginning of an "Apache-Math-Java".
>
> +1
>
> :)

<g> back at ya.


Al


               
__________________________________
Discover Yahoo!
Get on-the-go sports scores, stock quotes, news and more. Check it out!
http://discover.yahoo.com/mobile.html

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Bill Barker-2
In reply to this post by Ryan Li
I'm actually very interested in this project.  I'm unlikely to have enough
spare time to be a proper mentor, but I could volunteer to review the code
submissions.  Technically, I also have karma to commit code, but I haven't
been active in [math] before now, so I'll probably defer to Phil or Al for
that job ;-).

I agree with Al that you will certainly earn your money with this proposal
:).   I agree with Al's suggestions for how to proceed.  OS software is
about building a community around the code.  If the community is there,
naive (and even buggy) implementations can always be improved on.

"Ryan Li" <[hidden email]> wrote in message
news:[hidden email]...
Hi all,

Many thanks for your comments so far (please keep them coming!). I do
realise that the proposal will probably take a number of specialised
numerical analysts a few months if not years to complete. I'm all for
cutting things down a bit (a lot rather), with an initial focus on the
more classical methods for which efficient algorithms are well
documented and can be implemented relatively easily. Seeing
commons-math as a generic and compact library based on which other
more sophisticated code can be written, I think the following could be
useful:

- performance tuning for matrix computation and add more decomposition
methods
- univariate integration (Romberg is what I have in mind)
- true polynomial interpolation, as opposed to spline, it will be
usually be used by other higher level numerical algorithms e.g.
Romberg integration or other Richardson extrapolation procedures
- univariate minimization
- robust derivative-free multidimensional optimization (downhill simplex)
- B-spline
- ODE solver
- (maybe?) Gaussian quadratures

and then possibly move to the more ambitious part. At some point I
would also like to add more special functions, and optimise the
performance of existing ones. Please let me know what you think about
this plan.

I am actually a happy user of Colt myself, to me it seems that it
focuses on the data structure side of numerical computation (which it
does an excellent job), what I find it lacks specifically are the
algorithm side of things like root finding, interpolation,
integration, optimization (and possibly) ODE solver, the performance
of some of the special functions also left something to be desired
after they replaced the old IMSL code. There are scattered efforts on
all the things mentioned above, some seem to be quite mature but most
are experimental, I think it would be nice to have them all in one
library (maybe just adapt if license compatible and code reasonably
stable).

As for code quality, I'll make sure I do extensive research into the
literatures and (probably more important) existing implementations in
whatever language before getting my hands on the keyboard, part of the
reason I wanted to start such a project is that when I was doing
coursework, I referenced many books and papers only to realise that
some of the ideas were clearly better than what I was suggested to do
in the project!


Best regards,

Ryan


On 6/3/05, Rory Winston <[hidden email]> wrote:

> I agree, it is a hugely ambitious project. Which is not necessarily a bad
> thing. I think a good start would be to qualify the scope of the project
> sooner rather than later, and get a firm idea for exactly what will
> (hopefully) be achieved.
>
> "Jakarta Commons Developers List" <[hidden email]> wrote:
>
> >
> > Questions of scope of Commons-Math aside <gasp>, what is the scope of
> > the
> > summer project?  The scope of Ryan's proposal seems mighty ambitious,
> > even if
> > you remove the parts that aren't currently in scope for Commons-Math.
> > If you
> > intend to stay true to Apache's charter, the code will have to be
> > developed
> > firsthand, not copied from any other source, unless the license of the
> > source
> > is compatible or the author(s) are amenable to adding an
> > Apache-compatible
> > alternative license to their code or changing over to an
> > Apache-compatible
> > license.  Coding that much from scratch and providing JUnit tests will
> > be a
> > heck of a lot of work (maybe a little onerous if you do TDD).  And
> > forgive my
> > skepticism, but code developed for coursework is unlikely to be as
> > bulletproof
> > as the proposal aims for.
> >
> > Also, specifically what parts of the proposal are not already addressed
> > by
> > existing libraries such as Colt?  I thought we were over the licensing
> > hurdle
> > for Colt, so anything it already does probably should not be duplicated
> > by code
> > newly written for the proposed project.
> >
> > All the above said, I'm not trying to be discouraging, and in fact I
> > would be
> > willing to participate in mentoring (I'll probably learn something new
> > myself!).  I just want reasonable expectations and goals to be set.  And
> > perhaps we can all ride the wave of youthful exuberance to grow a
> > library that
> > looks like the beginning of an "Apache-Math-Java".
> >
> >
> > Al
> >
> >
> > --- Phil Steitz <[hidden email]> wrote:
> > > I have volunteered to help Ryan with the proposal below and to serve
> > > as a mentor if it is accepted.  Pls see the links infra and the
> > > general Wiki page (http://code.google.com/summerofcode.html) for more
> > > info on Google's  "Summer of Code".
> > >
> > > With Ryan's permission, I am forwarding the proposal.  The content as
> > > stated clearly goes beyond the current scope of [math], but several
> > > items are in scope.
> > >
> > > Comments, please.  After a little discussion - including maybe the
> > > inevitable reopening of the "what do we want to be when we grow up" -
> > > assuming others are favorable, I will work with Ryan to get something
> > > suitable onto the Wiki for consideration as one of the apache
> > > projects.  Comments from all commons community members are welcome.
> > >
> > > Thanks!
> > >
> > > Phil
> > >
> > > ---------- Forwarded message ----------
> > > From: Phil Steitz <[hidden email]>
> > > Date: Jun 2, 2005 4:50 AM
> > > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > > To: [hidden email]
> > >
> > >
> > >
> > >
> > > -------- Original Message --------
> > > Subject: Mentoring for Google's Summer of Code program
> > > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > > From: Ryan Li <[hidden email]>
> > > To: [hidden email]
> > >
> > > Dear Phil,
> > >
> > > I'm just wondering if you or other developers of the The Jakarta
> > > Commons Math library would be interested in mentoring me for the
> > > Google
> > > Summer of Code program (more details at
> > > http://code.google.com/mentfaq.html and
> > > http://code.google.com/summerofcode.html). Just so you know that the
> > > Apache Software Foundation is already a mentoring organization
> > > (http://wiki.apache.org/general/SummerOfCode2005). Please see below
> > > for
> > > my draft project proposal (as you can see I've already mentioned the
> > > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > > so you or other team members will probably be contacted by Google
> > > soon).
> > >
> > > Thank you very much for your consideration!
> > >
> > > Ryan Du Li
> > > A college student specialising in optimization and numerical analysis
> > >
> > > ------------------------------
> > >
> > > Project description:
> > >
> > > Numerical Library for Financial Modelling / Scientific Computation in
> > > Java (with a C# port)
> > >
> > > The goal of this project is to develop a reusable toolkit for
> > > developing mathematical models for valuing financial products and risk
> > > management. Due to its numerical intensive nature, it can also be used
> > > effectively in other applications that make uses of highly efficient
> > > numerical algorithms. Specific language features and design patterns
> > > will be used aggressively to allow for high performance and
> > > reusability. The C# port will be made in parallel as the Java version
> > > is developed, a number of features of C# (up to version 2.0) will be
> > > used, in particular operator overloading will be used for all matrix
> > > operations.
> > >
> > > Highly efficient numerical algorithms will be implemented in the
> > > following areas:
> > >
> > > 1. a generic matrix and linear algebra package (including support for
> > > dense and sparse matrices and commonly used decomposition methods), an
> > > existing library might be used for this part of the toolkit.
> > >
> > > 2. an approximation package, with an emphasis on the support for
> > > B-splines, which is used to approximate curves in general, given a set
> > > of points on the curve. Very useful for any sort of data fitting, and
> > > heavily used in term structure modelling in finance
> > >
> > > 3. generic PDE/ODE solvers, with built-in support for
> > > Poisson/heat/wave
> > > equations. Useful in a large number of situations in modelling.
> > >
> > > 3. an optimization package, including linear programming (simplex
> > > method, later also interior point method), quadratic programming,
> > > nonlinear unconstraint/constraint minimization, later will also
> > > include
> > > search methods including genetic programming.
> > >
> > > 4. a simulation package, to provide a framework for running
> > > (Quasi)Monte-Carlo simulations
> > >
> > > 5. other essential tools, multi-dimensional numerical integration,
> > > Fourier transform, root-solver, interpolation/extrapolation, , special
> > > functions, statistical distributions.
> > >
> > >
> > > Current Java/C# open-source efforts in this area are limited (with
> > > many
> > > projects abandoned or no longer actively maintained),  in particular
> > > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > > integration, Fourier transform are not addressed in any existing
> > > project I'm aware of (including most commercial ones). Also usually
> > > not
> > > the most robust & efficient implementation is used whenever a routine
> > > does exist, commercial projects have a significant advantage in this
> > > respect.
> > >
> > > Some of the code I've written for past school projects (I am a maths
> > > student specialising in optimization and numerical analysis) in the
> > > past will be adapted for various part of the toolkit. It is hoped that
> > > by the end of summer the main components of the library will be ready
> > > for production use, and it will be actively developed and maintained
> > > afterwards.
> > >
> > > I've put down Apache Software Foundation as my sponsor as I noted that
> > > they have a Commons-Math project
> > > (http://jakarta.apache.org/commons/math/) to which my project would
> > > complement very nicely.
> >
> > Albert Davidson Chou
> >
> >     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
>
>
> _________________________________________________________________
> eircom broadband is now up to four times faster than before.
> Phone 1850 73 00 73 or visit http://home.eircom.net/broadbandoffer
>
>
>
> ---------------------------------------------------------------------
> 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][all] Mentoring for Google's Summer of Code program

Ryan Li
In reply to this post by Al Chou
Following Al's suggestion (thanks Al!), I've made the following changes:

Core:
 
- polynomial & rational function interpolation

- univariate minimization

- univariate integration

- performance tuning for matrix computation and more decomposition
methods: mainly adapt code from other sources (Colt) assuming there is
no license issue


Additional (subject to discussion):

- generic (derivative-free) multidimensional optimization

- performance tuning for special functions

- FFT if it's not been worked on (I saw it on the wish list)

- initial value ODE package (RK & Multi-step)


Elsewhere (maybe merged back if there is enough interest):

- B-spline package (a generalisation of cubic spline which can handle
arbitrary order)

- optimization package

- PDE solver package


I'm going away for a few days due to exams but will be following the
discussion whenever possible.


Thanks,

Ryan


On 6/3/05, Al Chou <[hidden email]> wrote:

> Ryan,
>
> Your list below seems much more achievable.  I suggest cutting it even a bit
> further, say, dropping Gaussian quadrature as you already hint at (because
> implementing it would drag in some of the special functions that you note we
> don't have) and the ODE solver (unless all you mean is a simple initial value
> problem integrator, say 4th order Runge-Kutta).  I'm not familiar with B-spline
> or downhill simplex; univariate minimization is very close to root finding, as
> I'm sure you know, so I don't have a problem with including that.  And to
> actually expand the scope, maybe we could add rational function interpolation
> as well as polynomial.
>
> To keep a flavor of typical software development in this project, I would also
> be interested to see the code be evolved from simple/naive implementations to
> the more sophisticated ones, at least for some parts of the project.
> Implementing a sophisticated algorithm from a reference work may feel good, but
> I argue you'll learn more about both the mathematics and about software
> development by taking baby steps and experiencing for yourself the reasons the
> more sophisticated algorithms became necessary or at least desirable.  In other
> words, it's OK to write a naive and slow but correct implementation and then
> modify it toward some more sophisticated version.
>
> Finally, I wanted to clarify that I mistyped in my last post:  I meant to say
> that providing unit tests might be _less_ onerous if the code were done via
> TDD.  Testing an existing algorithm was always a pain to me early in my
> graduate career, and I learned through hard experience that it's necessary.
> Since then TDD has sprung up, and doing it actually makes writing tests (or
> executable examples, to be more accurate) feel good.
>
>
> Al
>
>
> --- Ryan Li <[hidden email]> wrote:
> > Hi all,
> >
> > Many thanks for your comments so far (please keep them coming!). I do
> > realise that the proposal will probably take a number of specialised
> > numerical analysts a few months if not years to complete. I'm all for
> > cutting things down a bit (a lot rather), with an initial focus on the
> > more classical methods for which efficient algorithms are well
> > documented and can be implemented relatively easily. Seeing
> > commons-math as a generic and compact library based on which other
> > more sophisticated code can be written, I think the following could be
> > useful:
> >
> >       - performance tuning for matrix computation and add more decomposition
> > methods
> >       - univariate integration (Romberg is what I have in mind)
> >       - true polynomial interpolation, as opposed to spline, it will be
> > usually be used by other higher level numerical algorithms e.g.
> > Romberg integration or other Richardson extrapolation procedures
> >       - univariate minimization
> >       - robust derivative-free multidimensional optimization (downhill simplex)
> >       - B-spline
> >       - ODE solver
> >       - (maybe?) Gaussian quadratures
> >
> > and then possibly move to the more ambitious part. At some point I
> > would also like to add more special functions, and optimise the
> > performance of existing ones. Please let me know what you think about
> > this plan.
> >
> > I am actually a happy user of Colt myself, to me it seems that it
> > focuses on the data structure side of numerical computation (which it
> > does an excellent job), what I find it lacks specifically are the
> > algorithm side of things like root finding, interpolation,
> > integration, optimization (and possibly) ODE solver, the performance
> > of some of the special functions also left something to be desired
> > after they replaced the old IMSL code. There are scattered efforts on
> > all the things mentioned above, some seem to be quite mature but most
> > are experimental, I think it would be nice to have them all in one
> > library (maybe just adapt if license compatible and code reasonably
> > stable).
> >
> > As for code quality, I'll make sure I do extensive research into the
> > literatures and (probably more important) existing implementations in
> > whatever language before getting my hands on the keyboard, part of the
> > reason I wanted to start such a project is that when I was doing
> > coursework, I referenced many books and papers only to realise that
> > some of the ideas were clearly better than what I was suggested to do
> > in the project!
> >
> >
> > Best regards,
> >
> > Ryan
> >
> >
> > On 6/3/05, Rory Winston <[hidden email]> wrote:
> > > I agree, it is a hugely ambitious project. Which is not necessarily a bad
> > thing. I think a good start would be to qualify the scope of the project
> > sooner rather than later, and get a firm idea for exactly what will
> > (hopefully) be achieved.
> > >
> > > "Jakarta Commons Developers List" <[hidden email]> wrote:
> > >
> > > >
> > > > Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> > > > summer project?  The scope of Ryan's proposal seems mighty ambitious,
> > even if
> > > > you remove the parts that aren't currently in scope for Commons-Math.  If
> > you
> > > > intend to stay true to Apache's charter, the code will have to be
> > developed
> > > > firsthand, not copied from any other source, unless the license of the
> > source
> > > > is compatible or the author(s) are amenable to adding an
> > Apache-compatible
> > > > alternative license to their code or changing over to an
> > Apache-compatible
> > > > license.  Coding that much from scratch and providing JUnit tests will be
> > a
> > > > heck of a lot of work (maybe a little onerous if you do TDD).  And
> > forgive my
> > > > skepticism, but code developed for coursework is unlikely to be as
> > bulletproof
> > > > as the proposal aims for.
> > > >
> > > > Also, specifically what parts of the proposal are not already addressed
> > by
> > > > existing libraries such as Colt?  I thought we were over the licensing
> > hurdle
> > > > for Colt, so anything it already does probably should not be duplicated
> > by code
> > > > newly written for the proposed project.
> > > >
> > > > All the above said, I'm not trying to be discouraging, and in fact I
> > would be
> > > > willing to participate in mentoring (I'll probably learn something new
> > > > myself!).  I just want reasonable expectations and goals to be set.  And
> > > > perhaps we can all ride the wave of youthful exuberance to grow a library
> > that
> > > > looks like the beginning of an "Apache-Math-Java".
> > > >
> > > >
> > > > Al
> > > >
> > > >
> > > > --- Phil Steitz <[hidden email]> wrote:
> > > > > I have volunteered to help Ryan with the proposal below and to serve
> > > > > as a mentor if it is accepted.  Pls see the links infra and the
> > > > > general Wiki page (http://code.google.com/summerofcode.html) for more
> > > > > info on Google's  "Summer of Code".
> > > > >
> > > > > With Ryan's permission, I am forwarding the proposal.  The content as
> > > > > stated clearly goes beyond the current scope of [math], but several
> > > > > items are in scope.
> > > > >
> > > > > Comments, please.  After a little discussion - including maybe the
> > > > > inevitable reopening of the "what do we want to be when we grow up" -
> > > > > assuming others are favorable, I will work with Ryan to get something
> > > > > suitable onto the Wiki for consideration as one of the apache
> > > > > projects.  Comments from all commons community members are welcome.
> > > > >
> > > > > Thanks!
> > > > >
> > > > > Phil
> > > > >
> > > > > ---------- Forwarded message ----------
> > > > > From: Phil Steitz <[hidden email]>
> > > > > Date: Jun 2, 2005 4:50 AM
> > > > > Subject: [Fwd: Mentoring for Google's Summer of Code program]
> > > > > To: [hidden email]
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > -------- Original Message --------
> > > > > Subject: Mentoring for Google's Summer of Code program
> > > > > Date: Wed, 1 Jun 2005 07:23:25 -0700 (PDT)
> > > > > From: Ryan Li <[hidden email]>
> > > > > To: [hidden email]
> > > > >
> > > > > Dear Phil,
> > > > >
> > > > > I'm just wondering if you or other developers of the The Jakarta
> > > > > Commons Math library would be interested in mentoring me for the Google
> > > > > Summer of Code program (more details at
> > > > > http://code.google.com/mentfaq.html and
> > > > > http://code.google.com/summerofcode.html). Just so you know that the
> > > > > Apache Software Foundation is already a mentoring organization
> > > > > (http://wiki.apache.org/general/SummerOfCode2005). Please see below for
> > > > > my draft project proposal (as you can see I've already mentioned the
> > > > > Jakarta Commons Math library in it and I've put down ASF as my mentor,
> > > > > so you or other team members will probably be contacted by Google
> > > > > soon).
> > > > >
> > > > > Thank you very much for your consideration!
> > > > >
> > > > > Ryan Du Li
> > > > > A college student specialising in optimization and numerical analysis
> > > > >
> > > > > ------------------------------
> > > > >
> > > > > Project description:
> > > > >
> > > > > Numerical Library for Financial Modelling / Scientific Computation in
> > > > > Java (with a C# port)
> > > > >
> > > > > The goal of this project is to develop a reusable toolkit for
> > > > > developing mathematical models for valuing financial products and risk
> > > > > management. Due to its numerical intensive nature, it can also be used
> > > > > effectively in other applications that make uses of highly efficient
> > > > > numerical algorithms. Specific language features and design patterns
> > > > > will be used aggressively to allow for high performance and
> > > > > reusability. The C# port will be made in parallel as the Java version
> > > > > is developed, a number of features of C# (up to version 2.0) will be
> > > > > used, in particular operator overloading will be used for all matrix
> > > > > operations.
> > > > >
> > > > > Highly efficient numerical algorithms will be implemented in the
> > > > > following areas:
> > > > >
> > > > > 1. a generic matrix and linear algebra package (including support for
> > > > > dense and sparse matrices and commonly used decomposition methods), an
> > > > > existing library might be used for this part of the toolkit.
> > > > >
> > > > > 2. an approximation package, with an emphasis on the support for
> > > > > B-splines, which is used to approximate curves in general, given a set
> > > > > of points on the curve. Very useful for any sort of data fitting, and
> > > > > heavily used in term structure modelling in finance
> > > > >
> > > > > 3. generic PDE/ODE solvers, with built-in support for Poisson/heat/wave
> > > > > equations. Useful in a large number of situations in modelling.
> > > > >
> > > > > 3. an optimization package, including linear programming (simplex
> > > > > method, later also interior point method), quadratic programming,
> > > > > nonlinear unconstraint/constraint minimization, later will also include
> > > > > search methods including genetic programming.
> > > > >
> > > > > 4. a simulation package, to provide a framework for running
> > > > > (Quasi)Monte-Carlo simulations
> > > > >
> > > > > 5. other essential tools, multi-dimensional numerical integration,
> > > > > Fourier transform, root-solver, interpolation/extrapolation, , special
> > > > > functions, statistical distributions.
> > > > >
> > > > >
> > > > > Current Java/C# open-source efforts in this area are limited (with many
> > > > > projects abandoned or no longer actively maintained),  in particular
> > > > > useful things like B-Spline PDE-Solver, multi-dimensional numerical
> > > > > integration, Fourier transform are not addressed in any existing
> > > > > project I'm aware of (including most commercial ones). Also usually not
> > > > > the most robust & efficient implementation is used whenever a routine
> > > > > does exist, commercial projects have a significant advantage in this
> > > > > respect.
> > > > >
> > > > > Some of the code I've written for past school projects (I am a maths
> > > > > student specialising in optimization and numerical analysis) in the
> > > > > past will be adapted for various part of the toolkit. It is hoped that
> > > > > by the end of summer the main components of the library will be ready
> > > > > for production use, and it will be actively developed and maintained
> > > > > afterwards.
> > > > >
> > > > > I've put down Apache Software Foundation as my sponsor as I noted that
> > > > > they have a Commons-Math project
> > > > > (http://jakarta.apache.org/commons/math/) to which my project would
> > > > > complement very nicely.
> > > >
> > > > Albert Davidson Chou
> > > >
> > > >     Get answers to Mac questions at http://www.Mac-Mgrs.org/ .
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Phil Steitz
Ryan,

This is looking good.  Welcome to Jakarta Commons!  

I think the core things below will be a good start and I am sure we
can accomodate the other things as well (possibly moving out of j-c
when we get there).  I would personally pull the special functions
optimization up into core and prioritize this, since this is an
enhancement to what we already have and will boost performance of the
probablity and stats applications that we use them for.  More special
functions would also be welcome.

Given the general positive response, and others' willingness to help
mentor, I will post a general description to the SoC Wiki and/or work
with Ryan to get a full proposal submitted  so we can try to get this
onto the list of potential ASF-sponsored projects (I have inquiries
out to find out what the right next steps are).

One more thing.  There is a lot of work to do on this.  I am sure we
could use more volunteers - mentors, contributors, students -  so
anyone in the community who may be interested, please feel free to
join us!

Phil
 

>
> Core:
>
> - polynomial & rational function interpolation
>
> - univariate minimization
>
> - univariate integration
>
> - performance tuning for matrix computation and more decomposition
> methods: mainly adapt code from other sources (Colt) assuming there is
> no license issue
>
>
> Additional (subject to discussion):
>
> - generic (derivative-free) multidimensional optimization
>
> - performance tuning for special functions
>
> - FFT if it's not been worked on (I saw it on the wish list)
>
> - initial value ODE package (RK & Multi-step)
>
>
> Elsewhere (maybe merged back if there is enough interest):
>
> - B-spline package (a generalisation of cubic spline which can handle
> arbitrary order)
>
> - optimization package
>
> - PDE solver package
>
>
> I'm going away for a few days due to exams but will be following the
> discussion whenever possible.
>
>
> Thanks,
>
> Ryan

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Phil Steitz
In reply to this post by robert burrell donkin
On 6/3/05, robert burrell donkin <[hidden email]> wrote:
> On Thu, 2005-06-02 at 22:58 -0700, Al Chou wrote:
> > Questions of scope of Commons-Math aside <gasp>, what is the scope of the
> > summer project?  The scope of Ryan's proposal seems mighty ambitious, even if
> > you remove the parts that aren't currently in scope for Commons-Math.
>
> i think that it would be useful to separate the question of scope from
> the question of mentoring and community.

+1

>
> i definitely agree that the commons-math group is the right one for
> mentoring this code. i also agree (with simon) that jakarta commons is
> the best community for growing this code (whilst math remains here, of
> course).

+1
>
> in terms of scope, IMHO there are two separate questions: is the
> proposed codebase in scope for the jakarta-commons and is it in scope
> for the commons-math component. opinions on these questions welcomed :)
>
> if the codebase is not in scope for jakarta-commons then i'd be willing
> to sponsor this as an incubator project (when it is ready). it could be
> developed in the sandbox until then.

I think the modified scope specified later in this thread is in scope
for j-c-m.  I agree that the scope of the initial proposal goes beyond
j-c-m, or j-c or even Jakarta (the C# port).

I like the idea of using the more modest extensions here to build
community, then maybe play a bit over the boundaries - including even
C# - in the sandbox and then think about incubating apache math.

It is nice to see our original apache sponsor still willing to help
move us along :-)

For the moment, however, I think it is best to propose this as an
extension to j-c-m.

>
> > If you
> > intend to stay true to Apache's charter, the code will have to be developed
> > firsthand, not copied from any other source, unless the license of the source
> > is compatible or the author(s) are amenable to adding an Apache-compatible
> > alternative license to their code or changing over to an Apache-compatible
> > license.  Coding that much from scratch and providing JUnit tests will be a
> > heck of a lot of work (maybe a little onerous if you do TDD).  And forgive my
> > skepticism, but code developed for coursework is unlikely to be as bulletproof
> > as the proposal aims for.
>
> it does sound ambitious (but there's nothing wrong with that)

+1

>
> IMHO one of the first jobs of the mentors will need to do will be to
> study the proposal and create a realistic core tasks together with a
> more ambitious list of additional tasks. (this should ensure that ryan
> is not unfairly financially penalised for his ambition.) it's hard to
> estimate a priori what the quality and quantity of any code produced by
> ryan will be but i agree that the code will need to satisfy the current
> standards especially in the area of development best practice. the
> mentors will need to work with ryan to ensure that he knows what's
> expected particular when it comes to using code developed by others.
>
Agreed.  That is what I am signing up for.  Fortunately, the current
code base, the developer guide and various other apache docs give good
guidance on code and IP requirements.  I will follow up with the SoC
organizers on the whole issue of managing scope and deliverables (in
some ways antithetical the apache way) because I agree that this could
be onerous and we want to ensure that
1. Ryan and any other students who participate have a clear
understanding of what is expected and how much they are signing up for
2. The quality of what is committed meets the standards of j-c-m
3. We do not introduce any IP issues

> > Also, specifically what parts of the proposal are not already addressed by
> > existing libraries such as Colt?  I thought we were over the licensing hurdle
> > for Colt, so anything it already does probably should not be duplicated by code
> > newly written for the proposed project.

This may not be a consensus or popular view, but even if/when we
eventually become apache math, I will be opposed to "annexing code"
without community.  So, regarding Colt in particular, if the Colt
community decides to join us at some point and wants to do a software
grant, go through the incubator, etc., that will be great.  Until such
time, I think it is fine for us to "duplicate functionality" with
j-c-m APIs and j-c-m volunteers for things that fit within our scope.
What is essential to me is that we have developers actively supporting
all code that comes in.  Anything that we commit, we need to be able
to support.
 
Phil

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Phil Steitz
In reply to this post by Bill Barker-2
On 6/3/05, Bill Barker <[hidden email]> wrote:
> I'm actually very interested in this project.  I'm unlikely to have enough
> spare time to be a proper mentor, but I could volunteer to review the code
> submissions.  Technically, I also have karma to commit code, but I haven't
> been active in [math] before now, so I'll probably defer to Phil or Al for
> that job ;-).

You are welcome at any time to add yourself to project.xml and dive in :-)
Thanks in advance!  Any comments that you have on the current code
would also be welcome.  We are gearing up for a 1.1 release, so now
would be a good time ;-)

>
> I agree with Al that you will certainly earn your money with this proposal
> :).   I agree with Al's suggestions for how to proceed.  OS software is
> about building a community around the code.  If the community is there,
> naive (and even buggy) implementations can always be improved on.

+1

Phil

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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

robert burrell donkin
In reply to this post by Phil Steitz
On Sat, 2005-06-04 at 12:59 -0400, Phil Steitz wrote:
> On 6/3/05, robert burrell donkin <[hidden email]> wrote:

<snip>

> >
> > in terms of scope, IMHO there are two separate questions: is the
> > proposed codebase in scope for the jakarta-commons and is it in scope
> > for the commons-math component. opinions on these questions welcomed :)
> >
> > if the codebase is not in scope for jakarta-commons then i'd be willing
> > to sponsor this as an incubator project (when it is ready). it could be
> > developed in the sandbox until then.
>
> I think the modified scope specified later in this thread is in scope
> for j-c-m.  I agree that the scope of the initial proposal goes beyond
> j-c-m, or j-c or even Jakarta (the C# port).
>
> I like the idea of using the more modest extensions here to build
> community, then maybe play a bit over the boundaries - including even
> C# - in the sandbox and then think about incubating apache math.
>
> It is nice to see our original apache sponsor still willing to help
> move us along :-)

it's good to see all the progress math has made :)

- robert


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

Reply | Threaded
Open this post in threaded view
|

Re: [math][all] Mentoring for Google's Summer of Code program

Al Chou
In reply to this post by Phil Steitz
--- Phil Steitz <[hidden email]> wrote:
> On 6/3/05, robert burrell donkin <[hidden email]>
> wrote:
> > On Thu, 2005-06-02 at 22:58 -0700, Al Chou wrote:

[deletia]

> I think the modified scope specified later in this thread is in scope
> for j-c-m.  I agree that the scope of the initial proposal goes beyond
> j-c-m, or j-c or even Jakarta (the C# port).
>
> I like the idea of using the more modest extensions here to build
> community, then maybe play a bit over the boundaries - including even
> C# - in the sandbox and then think about incubating apache math.

+1


> It is nice to see our original apache sponsor still willing to help
> move us along :-)

Agreed!


> For the moment, however, I think it is best to propose this as an
> extension to j-c-m.

+1


> > IMHO one of the first jobs of the mentors will need to do will be to
> > study the proposal and create a realistic core tasks together with a
> > more ambitious list of additional tasks. (this should ensure that ryan
> > is not unfairly financially penalised for his ambition.) it's hard to
> > estimate a priori what the quality and quantity of any code produced by
> > ryan will be but i agree that the code will need to satisfy the current
> > standards especially in the area of development best practice. the
> > mentors will need to work with ryan to ensure that he knows what's
> > expected particular when it comes to using code developed by others.
> >
> Agreed.  That is what I am signing up for.  Fortunately, the current
> code base, the developer guide and various other apache docs give good
> guidance on code and IP requirements.  I will follow up with the SoC
> organizers on the whole issue of managing scope and deliverables (in
> some ways antithetical the apache way) because I agree that this could
> be onerous and we want to ensure that
> 1. Ryan and any other students who participate have a clear
> understanding of what is expected and how much they are signing up for
> 2. The quality of what is committed meets the standards of j-c-m
> 3. We do not introduce any IP issues

Great!


> > > Also, specifically what parts of the proposal are not already addressed
> by
> > > existing libraries such as Colt?  I thought we were over the licensing
> hurdle
> > > for Colt, so anything it already does probably should not be duplicated
> by code
> > > newly written for the proposed project.
>
> This may not be a consensus or popular view, but even if/when we
> eventually become apache math, I will be opposed to "annexing code"
> without community.  So, regarding Colt in particular, if the Colt
> community decides to join us at some point and wants to do a software
> grant, go through the incubator, etc., that will be great.  Until such
> time, I think it is fine for us to "duplicate functionality" with
> j-c-m APIs and j-c-m volunteers for things that fit within our scope.
> What is essential to me is that we have developers actively supporting
> all code that comes in.  Anything that we commit, we need to be able
> to support.

Phil, that's an interesting point, which I hadn't considered.  Here's an
off-the-cuff counterproposal:  let us annex the parts of Colt that we need,
when we need them, if that seems the right thing to do for the particular need
at the time.  That way we will ensure community exists (our own) for the code
that is imported.



Al


               
__________________________________
Do you Yahoo!?
Yahoo! Mail - Find what you need with new enhanced search.
http://info.mail.yahoo.com/mail_250

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