Showing posts with label roadmap. Show all posts
Showing posts with label roadmap. Show all posts

17 May 2012

A wishlist, of sorts

In Assembling a roadmap, I put together an order for twelve functions to implement. Here, in no particular order, is a wishlist of functions that are related to those actually in the nuspectral package, but which are not in the package and are wholly additional.

  • Statistical confidence interval:
    • nucomplex
    • nureal
    • fastnucomplex
    • fastnureal
    • nuwavelet
    • fastnuwavelet
(Further suggestions are welcome; there may not be time for all of them during the summer, but I'll use this list to continue development.)

Week-by-week timeline

So, after having had a fairly crazy week, here's my expected week-by-week timeline; note that documentation and testing will be ongoing, even though there is a buffer zone specifically for that. That buffer time is also in case something takes longer than I expect, or other problems/discoveries crop up. In short, the buffer zone is to catch problems and make sure I've got enough room for everything, but if I'm up to date I will stop and document, write tests, and do background work for some wishlist tasks (see the post I'll put up after this for wishlist details.)

  • 21 may: Coding begins
    • 21 may - 25 may: cubicwgt, nucorrcoeff, nuwaveletcoeff
    • 28 may - 1 jun: nureal, nucomplex, start fastnucomplex
    • 4 jun - 8 jun: fastnucomplex
    • 11 jun - 15 jun: fastnucomplex, lombnormcoeff
    • 18 jun - 22 jun: fastnureal
    • 25 jun - 29 jun: nuwavelet, lombcoeff
    • 2  jul - 6 jul: fastnuwavelet
  • 9 jul: Midterm evaluation submission window opens
    • 9 jul - 13 jul: Buffer zone for catching up on documentation, writing OctConf presentation.
  • 13 jul: Midterm evaluation submission window closes
    • 16 jul - 20 jul: [OctConf] — Talk presented at some point
    • 22 jul - 27 jul: nurealcoeff, package and release prototype package. Begin receiving community comments and making community edits.
    • 30 jul - 10 aug: Hopefully, wishlist time. Research on weekends.
  • 13 aug: Suggested "pencils down" date
    • 13 aug - 20 aug: code revision
  • 20 aug: Firm "pencils down" date; final evaluation submission window opens
  • 24 aug: Final evaluation submission window closes
(Other after-coding stuff happens.)

Note that the order has been preserved from Assembling a Roadmap, as that order seemed perfectly rational to me. Also, depending on what my further code reading turns up, nuwavelet may not be done (as I noted in Roadmap) since there is no R function that would appear to use it.

08 May 2012

Assembling a roadmap

So, the first task in creating a roadmap was considering dependencies within the functions I'll be implementing; another consideration was the current form of the code—is it R or C? As such, I've established this set of dependencies:

R-only code:

  • cubicwgt
    • nucorrcoeff
    • nuwaveletcoeff
  • lombnormcoeff
  • lombcoeff
  • nurealcoeff
C implemented code:

  • nureal
  • nucomplex
  • fastnucomplex
    • fastnureal
  • nuwavelet
  • fastnuwavelet
Now, nureal, nucomplex, and nuwavelet are all fairly short functions, for which probably far less effort will be necessary in order to implement them compared to their fast versions; all of the R-only functions are even shorter; as such, I'm proposing to complete these functions in the following order:

  1. cubicwgt
  2. nucorrcoeff
  3. nuwaveletcoeff
  4. nureal
  5. nucomplex
  6. fastnucomplex
  7. lombnormcoeff
  8. fastnureal
  9. nuwavelet
  10. lombcoeff
  11. fastnuwavelet
  12. nurealcoeff
This distribution of tasks is slightly tail-weighted, as it features three R-only functions right off the bat, but  the structure of all three fast functions is fairly similar at the core (in fact, I will examine them a little more closely to determine if they would be better implemented with shared code, since they all have a similar divide-and-conquer structure.) This leads me to believe that it is not outlandish to consider being somewhere around 7 or 8 by the time midterms come around, with all previous functions completed and tested against their reference implementations, as well as documented.

As a postscript, there is no R function wrapper for nuwavelet; it exists only in the C code, and is not referred to elsewhere. I'll look into that a bit more closely before starting on it.