// -*- Mode:C++; Coding:us-ascii-unix; fill-column:160 -*-
/**************************************************************************************************************************************************************/
/**
@file      cppRcppOutOfLine.cpp
@author    Mitch Richling <https://www.mitchr.me>
@Copyright Copyright 2015 by Mitch Richling.  All rights reserved.
@brief     Define a couple C++ functiosn for use by Rcpp.@EOL
@Keywords  Rcpp
@Std       C++11
*/

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <Rcpp.h>

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
using namespace Rcpp;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// [[Rcpp::export]]
NumericVector cppCat(NumericVector a, NumericVector b) {
  Rcpp::NumericVector c(a.size() + b.size());
  int j=0;
  for (int i=0; i<a.size(); i++)
    c[j++] += a[i];
  for (int i=0; i<b.size(); i++)
    c[j++] += b[i];
  return c;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// [[Rcpp::export]]
double cppSum(NumericVector x) {
  double total = 0;
  for(int i=0; i<x.size(); ++i) {
    total += x[i];
  }
  return total;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*** R
print('HI -- I am some code in cppRcppOutOfLine.cpp')
*/