User:Mfasi: Difference between revisions

From Octave
Jump to navigation Jump to search
Line 56: Line 56:


== Your task ==
== Your task ==
* Did you select a task from our list of proposals and ideas?
* The project I would like to work on is ''Improve logm, sqrtm, funm''.
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. ''Please also wiki-link the page for your elaborated proposal here.''
 
** If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
I would implement such functions, using known algorithms for matrix functions. In particular, I would like to start implementing the Schur-Parlett recurrence for general matrix functions, that is known to be <math>\mathcal{O}(n^4)</math>, 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 [http://poisson.phc.unipi.it/~maxreen/bruno/pdf/B.%20Iannazzo%20and%20C.%20Manasse%20-%20A%20Schur%20logarithmic%20algorithm%20for%20fractional%20powers%20of%20matrices%20-%20SIMAX.pdf] that has a lower asymptotical complexity (but seems rather involved, so I cannot say anything about the real performances).
 
 
* 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.''
* 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.''
[[Category: Summer of Code]]
[[Category: Summer of Code]]

Revision as of 13:41, 1 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 application. 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 out of the possible organizations is the one I am most interested in, on the other hand because is probaly the one I know better among them. Moreover, I have used it a lot before (for example for my bachelor thesis TODO add link)

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 coding, while in the morning I prefer reading papers or doing developing some ideas (that will be coded later on).

Coding experience

  • Experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.


  • Experience with other programming languages.
  • Experience with being in a development team. Do you have experience working with open source or free projects?
  • 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.
  • Please state the commits and patches you already contributed to Octave. This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.

Feeling fine

  • Please describe (in short) your experience with the following tools: We only use this question to determine where you need guidance, not for rating! We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.
    • IRC and mailing lists
    • Mercurial or other source code management systems
    • Mediawiki or other wiki software
    • make, gcc, gdb or other development tools
  • What will make you actively stay in our community after this GSoC is over? You can also tell us after applications close and we'll happily try to fulfill :-)

Only out of interest

  • Did you ever hear about Octave before?
    • If so, when and where? How far have you been involved already?
    • If not, where would you expect or advise us to do advertising?
  • What was the first question concerning Octave you could not find an answer to rather quickly? Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …

Prerequisites

  • Please state the operating system you work with.
    • If you have access to more than one, please state them and the conditions under which you are granted this access.
  • Please estimate an average time per day you will be able to (if separated) access
    • an internet connection
    • a computer
    • a computer with your progressing work on
  • Please describe the degree up to which you can install new software on computers you have access to.

Self-assessment

  • Please describe how useful criticism looks from your point of view as committing student.
  • How autonomous are you when developing? If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)
    • Do you like to discuss changes intensively and not start coding until you know what you want to do?
    • Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?

Your task

  • The project I would like to work on is Improve logm, sqrtm, funm.

I would implement such functions, using known algorithms for matrix functions. In particular, I would like to start implementing the Schur-Parlett recurrence for general matrix functions, that is known to be , 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 [1] that has a lower asymptotical complexity (but seems rather involved, so I cannot say anything about the real performances).


  • 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.