Code Monkey home page Code Monkey logo

Comments (6)

tnagler avatar tnagler commented on May 25, 2024

Generally, I don't think there's huge potential for speedup. Most of the slowness (at least for me) came with all these freaking compiler warnings from RcppEigen and BH. Now to the solutions:

  1. We should definitely allow for LinkingTo.
  2. That's an option.
  3. Don't think we can do much here. Things that aren't used shouldn't be compiled anyway afaik.

How about putting the header only version in inst/include, but putting the shared lib headers in src/include/, the cpps in src/ and building the shared lib from there? We can't use the headers of inst/include ourselves though, because then we would define functions multiple times.

from rvinecopulib.

tvatter avatar tvatter commented on May 25, 2024
  1. I'm not convinced. It's a pretty specific (as opposed to general purpose) library.
  2. OK.
  3. For instance, we don't need to include the vine headers in the bicop wrappers, but if you're right about the not used/not compiled, it does not matter indeed.

from rvinecopulib.

tnagler avatar tnagler commented on May 25, 2024
  1. Yeah, but stuff like vinereg I would have written in C++ with a LinkingTo if that option would have existed back then. And at least I intend to do similar things that way in the future. If one cannot use the headers via LinkinTo, one always has to include all vinecopulib headers as part of any other package.

from rvinecopulib.

tvatter avatar tvatter commented on May 25, 2024
  1. Yeah, vinereg and eecop are examples that comes to mind, but even us didn't link again the vinecopulib headers ;) Also, are you sure that we can't link against the functions in vinecopulib if the headers are in inst and the library is compiled in a "standard" way ?

from rvinecopulib.

tnagler avatar tnagler commented on May 25, 2024
  1. Apparently there is no other way when using custom C++ classes.
  2. Using a single wrapper file brought down compilation time from ~1m45s to ~45s on my machine (single core). I think that's reasonable, so I would vote for this option.

from rvinecopulib.

tvatter avatar tvatter commented on May 25, 2024

See #124

from rvinecopulib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.