1 /* 2 * jensen_shannon.h 3 * cufflinks 4 * 5 * Created by Cole Trapnell on 8/30/10. 6 * Copyright 2010 Cole Trapnell. All rights reserved. 7 * 8 */ 9 10 #include <boost/numeric/ublas/matrix.hpp> 11 #include <boost/numeric/ublas/matrix_proxy.hpp> 12 #include <boost/numeric/ublas/vector.hpp> 13 #include <boost/numeric/ublas/vector_proxy.hpp> 14 #include <boost/numeric/ublas/io.hpp> 15 16 #include <vector> 17 #include <Eigen/Dense> 18 19 namespace ublas = boost::numeric::ublas; 20 21 double entropy(const ublas::vector<double>& p); 22 23 double jensen_shannon_distance(std::vector<Eigen::VectorXd>& sample_kappas); 24 25 void jensen_shannon_gradient(std::vector<Eigen::VectorXd>& sample_kappas, 26 double js, 27 ublas::vector<double>& gradient); 28 29 void make_js_covariance_matrix(std::vector<ublas::matrix<double> >& kappa_covariances, 30 ublas::matrix<double>& js_covariance); 31