<div dir="ltr"><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Hello,</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">I am trying to link the Rcpp package with "deepstate" which is a static library helps us fuzz test the functions in the Rcpp package.</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">TestHarness.cpp file creates a test harness using TEST(). Test harness file in RcppDeepState/src/TestHarness.cpp has code to test t<span style="font-size:11pt">he function in rcpp_interface.cpp</span></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">I tried compiling the code TestHarness.cpp and used -ldeepstate to a link it to deepstate using :</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"><b>clang++ -o TestRcppharness TestRcppharness.cpp  -I"/usr/share/R/include" -I"/usr/lib/R/site-library/Rcpp/include" -ldeepstate</b></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">But this does nothing and keeps throwing <b>static assertion failed: cannot convert type to SEXP error.</b></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Below code: DeepState_Test class generates random numeric, Integer vectors and later passing those inputs to the rcpp_binseg_normal(random numeric vector, random Integer vector)</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">TestHarness.cpp </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">----------------------</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include <deepstate/DeepState.hpp></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include "rcpp_interface.h"</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include <Rcpp.h></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">using namespace Rcpp;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">using namespace deepstate;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">class DeepState_Test{</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">public:</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::NumericVector NumericRand_vec;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::NumericVector values;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::IntegerVector IntegerRand_vec;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> <span style="font-size:11pt">Rcpp::NumericVector Missing_values(){</span><span style="font-size:11pt">  </span></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    values = Rcpp::NumericVector::create(NA_REAL,R_NaN,R_PosInf,R_NegInf);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    return values;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">}</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Rcpp::NumericVector RcppDeepState_NumericVector()</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">{<span style="font-size:11pt">  </span></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    int num_vector_size = DeepState_RandInt();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    NumericRand_vec = new NumericVector[num_vector_size];</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    for(int i=0; i< num_vector_size; i++){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        OneOf(</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            [&] {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">                NumericRand_vec[i] = DeepState_Double();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            },</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            [&] {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">              </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">                    NumericRand_vec[i] = DeepState_DoubleInRange(0,DeepState_Double());</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            });</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        return (NumericRand_vec);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">   }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Rcpp::IntegerVector RcppDeepState_IntegerVector(){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    int int_vector_size = DeepState_RandInt();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">   IntegerRand_vec = new IntegerVector[int_vector_size];</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    for(int i=0; i< int_vector_size; i++){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        OneOf(</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            [&] {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">                IntegerRand_vec[i] = DeepState_Int();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            },</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            [&] {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">                IntegerRand_vec[i] = DeepState_IntInRange(0,DeepState_RandInt());</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">            });</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        return IntegerRand_vec;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">}</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">};</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">TEST(Random_Set, Ranges) {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        DeepState_Test *deeptest= new DeepState_Test();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        Rcpp::NumericVector data_vec = deeptest->RcppDeepState_NumericVector();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        Rcpp::IntegerVector max_segments = deeptest->RcppDeepState_IntegerVector();</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        //call to function in rcpp_interface</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">        rcpp_binseg_normal(data_vec,max_segments);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> }  </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">function in rcpp_interface.cpp :</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include <Rcpp.h></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include <R.h></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include "binseg_normal.h"</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">#include "binseg_normal_cost.h"</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">// [[Rcpp::export]]</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Rcpp::List rcpp_binseg_normal</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">(const Rcpp::NumericVector data_vec,</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> const Rcpp::IntegerVector max_segments) {</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  int kmax = max_segments[0];</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::IntegerVector end(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::NumericVector loss(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::NumericVector before_mean(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::NumericVector after_mean(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::IntegerVector before_size(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::IntegerVector after_size(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::IntegerVector invalidates_index(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  Rcpp::IntegerVector invalidates_after(kmax);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  int status = binseg_normal</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    (&data_vec[0], data_vec.size(), kmax,</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     //inputs above, outputs below.</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     &end[0], &loss[0],</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     &before_mean[0], &after_mean[0],</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     &before_size[0], &after_size[0],</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     &invalidates_index[0], &invalidates_after[0]);</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  if(status == ERROR_NO_DATA){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::stop("no data");</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  if(status == ERROR_NO_SEGMENTS){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::stop("no segments");</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  if(status == ERROR_TOO_MANY_SEGMENTS){</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    Rcpp::stop("too many segments");</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  }</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">  return Rcpp::List::create</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">    (Rcpp::Named("loss", loss),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("end", end),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("before.mean", before_mean),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("after.mean", after_mean),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("before.size", before_size),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("after.size", after_size),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("invalidates.index", invalidates_index),</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     Rcpp::Named("invalidates.after", invalidates_after)</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">     ) ;</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">}</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"><b> </b><b style="font-size:11pt">How can I compile Rcpp package or src/*.cpp files to get an executable and linking a static library to it while it is being compiled.</b></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"><b> </b><b style="font-size:11pt">How can I generate an executable Rcpp package using the command line(command) by linking deep state library instead of generating a RcppDeepState.so(not an executable) file dynamically using (R CMD INSTALL .)</b></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Thanks,</p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif">Akhila Chowdary<span style="font-size:11pt"> </span></p><p class="MsoNormal" style="margin:0in 0in 8pt;line-height:15.6933px;font-size:11pt;font-family:Calibri,sans-serif"> </p></div>