https://github.com/cran/GAS
Raw File
Tip revision: a8fe17c38002b26ca09b18984573c71a54efede6 authored by Leopoldo Catania on 12 June 2017, 21:08:21 UTC
version 0.2.1
Tip revision: a8fe17c
SafeFun.cpp
#include <RcppArmadillo.h>
#include "Utils.h"

using namespace Rcpp;
using namespace arma;

double lgammafn_safe(double dX){
  dX = InfRemover(dX, 1e50);
  double dOut = Rf_lgammafn(dX);
  return dOut;
}

arma::mat chol_safe(arma::mat mX){

  arma::vec vEigval = eig_sym( mX );

  double dMinEigen = min(vEigval);

  if(dMinEigen<1e-15){
    mX.diag() = mX.diag() + abs3(dMinEigen) + 1e-10;
  }

  return chol(mX) ;
}
back to top