102
edits
No edit summary |
|||
Line 4: | Line 4: | ||
** Italian is my mother tongue, I ''use'' somehow English and French. | ** Italian is my mother tongue, I ''use'' somehow English and French. | ||
** I would say that my field is numerical analysis. | ** I would say that my field is numerical analysis. | ||
* | * I have a previous experience with Google Summer of Code (applied for Octave this year, rejected) | ||
* I am choosing Octave on the one hand because it is the only organization I am interested in out of the SoCiS ones, on the other because it is probably the one that "produces" the software I know better. | |||
* I am choosing Octave on the one hand because is the organization I am | |||
== Contact == | == Contact == | ||
Line 16: | Line 15: | ||
* Experience with C++, Octave or Matlab m-scripts, OpenGL and Qt. | * Experience with C++, Octave or Matlab m-scripts, OpenGL and Qt. | ||
C++ and OpenGL where subjects of two university courses I've attended. I have used Octave to write my | C++ and OpenGL where subjects of two university courses I've attended. I have used Octave to write my bachelor thesis. | ||
* As a computer science student, I have had to work with many different languages: | * As a computer science student, I have had to work with many different languages: | ||
Line 24: | Line 23: | ||
** '''Other''': some SQL-based languages | ** '''Other''': some SQL-based languages | ||
* I have worked for some time to an open source project called Balcony (25K+ lines, C++), developed in Italy, whose aim was to build a ''virtual desktop'' to be installed on a USB key. The project was closed some years ago for lack of funds. I have also worked with a small team to produce an experimental service of automatic diseases classification from medical reports. As far as I know, the project is still maintained and developed, though it is not open source | * I have worked for some time to an open source project called Balcony (25K+ lines, C++), developed in Italy, whose aim was to build a ''virtual desktop'' to be installed on a USB key. The project was closed some years ago for lack of funds. I have also worked with a small team to produce an experimental service of automatic diseases classification from medical reports. As far as I know, the project is still maintained and developed, though it is not open source. | ||
* Contributions to Octave | * Contributions to Octave | ||
Line 38: | Line 37: | ||
** Submitted a patch that could fix bug {{bug|41453}} '''[C++]''' | ** Submitted a patch that could fix bug {{bug|41453}} '''[C++]''' | ||
** Submitted a patch that fixed bug {{bug|39532}} '''[m-file]''' | ** Submitted a patch that fixed bug {{bug|39532}} '''[m-file]''' | ||
** Working on a parser for pathdef.m matlab files | |||
== Feeling fine == | == Feeling fine == | ||
* My experience with | * My experience with | ||
** IRC and mailing lists: I have used both of them, but I do not know more than 2 or 3 IRC commands by hart. There are reference chart for that, though. | ** IRC and mailing lists: I have used both of them, but I do not know more than 2 or 3 IRC commands by hart. There are reference chart for that, though. | ||
** Mercurial: As I am implementing some patches for Octave, I know basic ideas and | ** Mercurial: As I am implementing some patches for Octave, I know basic ideas and commands. | ||
** Mediawiki: I have used it sometimes. By the way, I am using it right now. | ** Mediawiki: I have used it sometimes. By the way, I am using it right now. | ||
** make, gcc, gdb or other development tools: I know how to write a Makefile, how to use a compiler and a debugger. | ** make, gcc, gdb or other development tools: I know how to write a Makefile, how to use a compiler and a debugger. | ||
* | * I am already working | ||
== Only out of interest == | == Only out of interest == | ||
Line 55: | Line 55: | ||
* I am granted the access to use any Linux Distribution (I can just install it on a PC), but the ones I am used to are Debian, Ubuntu, Arch and Gentoo. I have also access machines with Windows 7 and 8. | * I am granted the access to use any Linux Distribution (I can just install it on a PC), but the ones I am used to are Debian, Ubuntu, Arch and Gentoo. I have also access machines with Windows 7 and 8. | ||
* I think I will not have any problem accessing a pc with internet connection 24/7 during the | * I think I will not have any problem accessing a pc with internet connection 24/7 during the SoCiS period. | ||
* I will be free to install new programs on all of the operating systems described above. | * I will be free to install new programs on all of the operating systems described above. | ||
Line 78: | Line 78: | ||
The hyperbolic and trigonometric functions have already been written down straightforwardly in thfm (), from the linear-algebra package. As it relies on sqrtm (), expm () and logm (), it will benefit of all the improvements to such functions. | The hyperbolic and trigonometric functions have already been written down straightforwardly in thfm (), from the linear-algebra package. As it relies on sqrtm (), expm () and logm (), it will benefit of all the improvements to such functions. | ||
The choice of the test cases is not so trivial. For the funm () function, I think that could be worth testing the Schur-Parlett approach on exp (), log () and root(), as a comparison can be directly made with their matrix counterparts already present in Octave's core library. A few special functions should be tested too, and I would like to use the Bessel functions, the Dawson function and the Lambert one. For the expm () functions some of the test cases should address the values the Padé approximants are ill-conditioned for, to check whether the devised heuristic is effective and whether the new approach makes the implementation actually more robust. As logm () and rootm () are multivalued complex functions, the neighbourhoods of the branching points and of the branch cuts should be carefully tested, to ensure that our implementation is exactly respondent to the most | The choice of the test cases is not so trivial. For the funm () function, I think that could be worth testing the Schur-Parlett approach on exp (), log () and root(), as a comparison can be directly made with their matrix counterparts already present in Octave's core library. A few special functions should be tested too, and I would like to use the Bessel functions, the Dawson function and the Lambert one. For the expm () functions some of the test cases should address the values the Padé approximants are ill-conditioned for, to check whether the devised heuristic is effective and whether the new approach makes the implementation actually more robust. As logm () and rootm () are multivalued complex functions, the neighbourhoods of the branching points and of the branch cuts should be carefully tested, to ensure that our implementation is exactly respondent to the most common specifications. | ||
==== Tentative timeline ==== | ==== Tentative timeline ==== | ||
* | * 1 June: Beginning of the coding period | ||
*''' | * 15 June: Implementation of the auxiliary functions required for '''funm ()''' (see above) | ||
* | * 15 July: Implementation of '''funm ()''' along with its test cases and documentation | ||
* ''' | * 15 August: Improvement of '''expm ()''' and '''logm ()''', implementation of '''rootm ()''' and check of the functionalities of '''thfm ()''' | ||
* | * 21 August: Test cases for '''expm ()''', '''logm ()''', '''rootm ()''' and '''thfm ()''' | ||
* | * 31 August: Refinement of the documentation and of the test cases | ||
* Later: Maintenance of the library | * Later: Maintenance of the library | ||
edits