Skip to content

Make a better API for the BioCro Framework #15

@leavesandlemmas

Description

@leavesandlemmas

I am making this issue to serve as a reminder of future plans / suggested development. I think we should build a C++ API for biocro.

Here's why:

  1. The BioCro developer manual says the BioCro framework should work as a standalone C++ library, so this is an existing goal.
  2. Desired changes to the R interface would require making changes to how the framework code works. I think future changes would be facilitated by an API. Desired changes include
    • Making evaluate_module accept a list of modules.
    • We should change how time is specified; allow for saving the state at arbitrary times; remove timestep from the parameters, etc.
  3. Building an API might allow us to increase the performance of BioCro as well as increase its functionality. For example:
    • Parameter optimization would be faster if the object BioCro object was instantiated once when defining the objective function, and then persisted for the lifetime of the objective function. Without a way to measure it, I don't know how much this would speed up things (without making the change and testing), but this is the reason using system_derivatives and a R solver is so slow when compared to run_biocro. An API change would also allow interfacing with C++ optimization routines directly.
    • Methods to search module inputs and outputs. I think it would be easier to learn how to use BioCro

Of course, the main reasons against making changes are

  1. No one has time. It would take a lot of investment to make happen.
  2. Changes would break or change the existing R interfaces which creates additional work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions