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

  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, vignettes and unit tests.
  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

You’ll have store a pointer to SymEngine objects. For the test assume a SymEngine object is like below,

typedef struct {
    double A;
    double B;
} CStruct;

Come up with a solution to create a struct, update the struct, delete the struct and showing the contents of the struct from R.

Solutions of tests

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

Clone this wiki locally