Skip to content

Commit 0dbf997

Browse files
fix test proposal
1 parent 74b7f2f commit 0dbf997

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

include/geode/stochastic/sampling/mcmc/proposal/classical_proposals.hpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ namespace geode
3232
{
3333
template < typename Geometry >
3434
std::unique_ptr< ProposalKernel< Geometry > > create_birth_death_kernel(
35-
const MarkedObjectSampler< Geometry >& sampler,
36-
double birth_prob = 0.5,
37-
double death_prob = 0.5 )
35+
const MarkedObjectSampler< Geometry >& sampler, double birth_prob )
3836
{
3937
auto kernel = std::make_unique< ProposalKernel< Geometry > >();
4038
kernel->add_move( std::make_unique< BirthDeathMove< Geometry > >(
@@ -46,16 +44,17 @@ namespace geode
4644
std::unique_ptr< ProposalKernel< Geometry > >
4745
create_birth_death_change_kernel(
4846
const MarkedObjectSampler< Geometry >& sampler,
49-
double birth_prob = 0.33,
50-
double death_prob = 0.33,
51-
double change_prob = 0.34 )
47+
double birth_prob,
48+
double death_prob )
5249
{
53-
auto kernel = std::make_unique< ProposalKernel< Geometry > >();
5450
auto birth_death_prob = birth_prob + death_prob;
51+
OPENGEODE_EXCEPTION( birth_death_prob < 1.,
52+
"[Proposal Kernel] - changes should be allowed." );
53+
auto kernel = std::make_unique< ProposalKernel< Geometry > >();
5554
kernel->add_move( std::make_unique< BirthDeathMove< Geometry > >(
5655
sampler, birth_death_prob, birth_prob / birth_death_prob ) );
5756
kernel->add_move( std::make_unique< ChangeMove< Geometry > >(
58-
sampler, change_prob ) );
57+
sampler, 1. - birth_death_prob ) );
5958
return kernel;
6059
}
6160
} // namespace geode

tests/stochastic/sampling/mcmc/proposal/test-proposal-kernel.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ namespace
6262

6363
// Create classical birth-death-change kernel
6464
auto kernel = geode::create_birth_death_change_kernel< geode::Point2D >(
65-
sampler, 0.5 );
65+
sampler, 0.4, 0.4 );
6666

6767
geode::RandomEngine engine;
6868

@@ -85,9 +85,11 @@ namespace
8585
OPENGEODE_EXCEPTION( prop.log_forward_prob <= 0.0,
8686
"[test proposal] Birth forward log-prob must be <= "
8787
"0." );
88+
8889
OPENGEODE_EXCEPTION(
8990
std::abs( prop.log_backward_prob
90-
- ( -std::log( config.size() + 1.0 ) ) )
91+
- ( std::log( 0.8 * 0.5 )
92+
- std::log( config.size() + 1.0 ) ) )
9193
< geode::GLOBAL_EPSILON,
9294
"[test proposal] Birth backward log-prob mismatch." );
9395
break;

tests/stochastic/sampling/mcmc/test-metropolis-hasting-sampler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ int main()
177177

178178
// Create classical birth-death-change kernel
179179
auto kernel = geode::create_birth_death_change_kernel< geode::Point2D >(
180-
sampler, 0.1, 0.1, 0.8 );
180+
sampler, 0.1, 0.1 );
181181

182182
geode::GibbsEnergy< geode::Point2D > poisson_energy;
183183

0 commit comments

Comments
 (0)