Mfasi

Joined 28 February 2014
659 bytes removed ,  13 May 2014
no edit summary
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.  
* As the project I am intested in is related to the domain I would apply for my Phd, I hope to boost a little my future applications. Moreover, I used the Octave functions I would work with for some Octave code I wrote.
* I have a previous experience with Google Summer of Code (applied for Octave this year, rejected)
* No previous experience with the Google Summer of Code
* 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 most interested in out of the GSoC ones, on the other because it is probably the one that "produces" the software I know better.


== 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 [https://dl.dropboxusercontent.com/u/37286377/thesis.pdf bachelor thesis].
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. Another non-opensource [https://www.cubbit.net/ big project] I took part to, for a little while.
* 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 basic commands.
** 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.  
* When GSoC will be over, I think I will remain into Octave community because I will have gotten started. After having spent three months developing for Octave, I will know it enough to not be scared by the idea of picking an issue and solve it.
* 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 GSoC period.
* 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 accepted specifications.
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 ====


* 21 April: Submission of an extended proposal to the mentor
* 1 June: Beginning of the coding period


*'''19 May''': Beginning of the coding period
* 15 June: Implementation of the auxiliary functions required for '''funm ()''' (see above)


* 30 May: Implementation of the auxiliary functions required for '''funm ()''' (see above)
* 15 July: Implementation of '''funm ()''' along with its test cases and documentation


* '''23 June''': 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 ()'''


* 31 July: 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 ()'''


* 7 August: Test cases for '''expm ()''', '''logm ()''', '''rootm ()''' and '''thfm ()'''
* 31 August: Refinement of the documentation and of the test cases
 
*'''18 August''': Refinement of the documentation and of the test cases


* Later: Maintenance of the library
* Later: Maintenance of the library
In bold, beginning of the program, mid-term and final evaluations deadlines.
102

edits