User:Mfasi: Difference between revisions
Line 57: | Line 57: | ||
== Self-assessment == | == Self-assessment == | ||
* | * As I know almost nothing about the Octave development cycle, I must rely on constructive criticism to improve my work. Moreover, as far as it is useful, as marked in the question, and polite, I am fine with it. | ||
* | * I prefer studying the problem before start typing, writing down my ideas and having a clear picture of what are the modules I will have to implement. If the project is very though, I usually start coding from the smallest units, that are supposed to solve the simpler tasks, and building the more complicated ones on the top of them. As I value the time I spend coding, I do not like too much throw away my work, though it happens, sometimes, when I am not careful enough during the analysis step. | ||
== Your task == | == Your task == |
Revision as of 07:39, 10 March 2014
Introduction
- I guess the three required sentences are on current studies, spoken languages and overall background. So:
- I am a student at "Ecole Normale Superieure" in Lyon (FR), second year of Master in Computer Science.
- Italian is my mother tongue, I use somehow English and French.
- 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.
- No previous experience with the Google Summer of Code
- 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 hand because it is probaly the one I know better.
Contact
- My nickname on IRC will be mfasi.
- I think my time zone will be UTC+1
- Just now, I am working for an internship and I go to my office at 7.00 and leave at 18.00 (in UTC+0), but I do not spend all of the time coding. I guess I spend usually the last 4/5 hours doing so, while in the morning I prefer reading papers or developing some ideas (that will be coded later on).
Coding experience
- 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.
- As a computer science student, I have had to work with many different languages:
- Imperative: pascal, C, Bash scripting, Java, JavaScript, PHP
- Functional: OCaml, HOPE
- Markup: LaTeX, XML, XSL, HTML
- Other: some SQL-based languages
- I have never took part to an open-source project, but some of the computer science courses I have followed required to develop code in team.
- [TODO] Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
- Contributions to Octave
Feeling fine
- Please describe (in short) your experience with the following tools:
- 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 am using it.
- 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, using both the command line or a IDE interface.
- What will make you actively stay in our community after this GSoC is over? The fact that I will have gotten started. After having spent three months developing for Octave, I will know it enough to not be scared by picking a issue and solve it.
Only out of interest
- Actually I have been using Octave for four years now, but just as a user. I think you could advertise in math forums, there is plenty of them.
- I had trouble finding a GUI, but that is no longer the case. In general everything is well documented. I had some troubles, years ago, when trying to use the symbolic packagem that was not very well documented, as far as I remember.
Prerequisites
- I am granted the access to use any Linux Distribution (I can just install it on a PC), but the ones I've used are Debian, Ubuntu, Arch and Gentoo. I have also access machines with Windows 7 and 8.
- I think I will not have problems accessing a pc with internet during the GSoC period.
- I will be free to install new programs on all the operating systems described above.
Self-assessment
- As I know almost nothing about the Octave development cycle, I must rely on constructive criticism to improve my work. Moreover, as far as it is useful, as marked in the question, and polite, I am fine with it.
- I prefer studying the problem before start typing, writing down my ideas and having a clear picture of what are the modules I will have to implement. If the project is very though, I usually start coding from the smallest units, that are supposed to solve the simpler tasks, and building the more complicated ones on the top of them. As I value the time I spend coding, I do not like too much throw away my work, though it happens, sometimes, when I am not careful enough during the analysis step.
Your task
- The project I would like to work on is Improve logm, sqrtm, funm.
I would like to implement such functions, using known algorithms for matrix functions. In particular, I would like to start implementing the Schur-Parlett recurrence that should be easy to do using the syl() function, that is known to be O(n^4), and then implementing better - specific - algorithms for the other two functions. For the matrix logarithm I do not know wether there is something better than the scaling and squaring method devised by Higham in Functions of Matrices: Theory and Computation, while for the p-th root there is a recent work that has a lower asymptotical complexity (but seems rather involved, so I cannot say anything about the real performances).
- [TODO] Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.