Skip to content

Symbolic Computation in R

Marlin NA edited this page Mar 25, 2017 · 6 revisions

Background

SymEngine is a standalone fast C++ symbolic manipulation library, which provides a fast computer_algebra_system , which is a lack in R. It has wrappers in several other languages, namely C, Python, Ruby, Julia and Haskell.

Related work

  • RSymPy is a R package that link the sympy python library using rJava and Jython. It is relative hard to install, and the interface is not transparent enough for R users.

The project is expected to provide a fast computer algebra system and a seamless interface within R.

Details of your coding project

What exactly do you want your student to code in the 3-month deadline? What functions? What do they do? Docs? Tests? Vignettes?

  1. Build a low level interface using Rcpp and the C-wrapper of symengine.
  2. Provide friendly user-interfacing functions and methods (e.g. the groupGenerics for math functions and binary operators).
  3. Write documentation and vignettes.
  4. (Optional) Interactive formular editor using shiny.

Expected impact

The resulting package is expected to provide a solid base of symbolic computation in R.

Mentors

  • Isuru Fernando <isuruf@gmail.com> is willing to mentor on symengine side.
  • Need another R mentor who may be familiar with Rcpp.

Tests

Several tests that potential students can do to demonstrate their capabilities for this particular project. Ask some hard questions that will give you insight about how the students write code to solve problems. You’ll see that the harder the questions that you ask, the easier it will be for you to choose between the students that apply for your project! Please modify the suggestions below to make them specific for your project.

  • Easy: something that any useR should be able to do, e.g. download some existing package listed in the Related Work, and run it on some example data.
  • Medium: something a bit more complicated. You can encourage students to write a script or some functions that show their R coding abilities.
  • Hard: Can the student write a package with Rd files, tests, and vigettes? If your package interfaces with non-R code, can the student write in that other language?

Solutions of tests

Students, please post a link to your test results here.

Clone this wiki locally