Exemple #1
0
 inline void set_sample(size_t sample_id,
     real_vector_type const & sample,
     real_scalar_type const weight
 )
 {
     boost::numeric::ublas::row(m_chain,sample_id) = sample;
     m_weights(sample_id) = weight;
 }
Exemple #2
0
void
AAKR::computeWeights(double variance)
{
    // Initialize some variables
    double svar = variance * variance;
    double k = (1 / std::sqrt(2 * DUNE::Math::c_pi * svar));

    m_weights.fill(0.0);

    // Compute weights
    for (unsigned i = 0; i < m_num_values; i++)
        m_weights(i) = k * std::exp(- m_distances(i) * m_distances(i) / svar);
}
Exemple #3
0
    void write_samples_to_csv(std::string const & file_name) const
    {
        std::string delimiter(",");
        std::ofstream out_file;
        out_file.open(file_name,std::ios::trunc);
        if( out_file.is_open() )
        {
            out_file << std::scientific;
            out_file << std::setprecision(10);
            for(size_t i=0;i<m_num_samples;++i)
            {
                out_file << m_weights(i) << delimiter;
                for(size_t j=0;j<size_t(m_num_dims-1);++j)
                {
                    out_file << m_chain(i,j) << delimiter;
                }
                out_file << m_chain(i,size_t(m_num_dims-1)) <<std::endl;
            }
        }

        out_file.close();
    }