#include <cn94.hpp>
Inheritance diagram for Arak::ModifiedCN94Proposal:
Definition at line 1152 of file cn94.hpp.
Public Member Functions | |
ModifiedCN94Proposal (const Arak::Util::PropertyMap &props) | |
Constructor. | |
virtual | ~ModifiedCN94Proposal () |
Destructor. | |
virtual ColoringMove & | move () |
Returns a reference to the move most recently sampled from this proposal distribution. | |
virtual double | ll (const Coloring &c) |
Returns the log likelihood of proposing a move that would lead to the same coloring as does the most recently sampled move. | |
virtual double | rll (const Coloring &c) |
Returns the log likelihood of proposing a return to the current state from the most recently proposed state. | |
Protected Member Functions | |
virtual void | sampleRecolor (const Coloring &state, Arak::Util::Random &random) |
Samples a recolor move and updates this proposal object so the sampled move is the current proposal. | |
virtual void | sampleBoundaryTriangleBirth (const Coloring &state, Arak::Util::Random &random) |
Samples a boundary triangle birth move and updates this proposal object so the sampled move is the current proposal. | |
virtual void | sampleSlideInteriorVertex (const Coloring &state, Arak::Util::Random &random) |
Samples a slide interior vertex move and updates this proposal object so the sampled move is the current proposal. | |
virtual void | sampleMoveInteriorVertex (const Coloring &state, Arak::Util::Random &random) |
Samples a move/slide interior vertex move and updates this proposal object so the sampled move is the current proposal. | |
Protected Attributes | |
double | ZETA_LOCAL_NOT_GLOBAL_RECOLOR |
The probability that a local recolor move is proposed rather than a global recolor move. | |
double | ZETA_LOCAL_NOT_GLOBAL_BD_TRI_BIRTH |
The probability that a local boundary triangle birth move is proposed rather than a global boundary triangle birth move. | |
SlideInteriorVertex | siv |
The most recently proposed "slide interior vertex" move. | |
double | ZETA_SLIDE_NOT_MOVE_INT_VERTEX |
The probability that a slide interior vertex move is proposed rather than a move interior vertex move. | |
bool | slide_not_move |
This flag indicates whether miv represents a slide interior vertex move rather than a move interior vertex move. |
|
Constructor.
Definition at line 1197 of file cn94.cpp. References Arak::Util::PropertyMap, ZETA_LOCAL_NOT_GLOBAL_BD_TRI_BIRTH, ZETA_LOCAL_NOT_GLOBAL_RECOLOR, and ZETA_SLIDE_NOT_MOVE_INT_VERTEX. |
|
Destructor.
|
|
Returns the log likelihood of proposing a move that would lead to the same coloring as does the most recently sampled move.
Reimplemented from Arak::CN94Proposal. Definition at line 1425 of file cn94.cpp. References Arak::CN94Proposal::castingArea(), Arak::Coloring::IntEdgeHandle, Arak::CN94Proposal::ll(), Arak::ln(), localRecolorSampleProb(), Arak::ModifiedCN94Proposal::SlideInteriorVertex::next, Arak::Coloring::numBoundaryEdges(), Arak::Coloring::numInteriorEdges(), Arak::Coloring::numVertices(), siv, slide_not_move, Arak::CN94Proposal::MoveInteriorVertex::vertex, ZETA_LOCAL_NOT_GLOBAL_BD_TRI_BIRTH, ZETA_LOCAL_NOT_GLOBAL_RECOLOR, and ZETA_SLIDE_NOT_MOVE_INT_VERTEX. |
|
Returns a reference to the move most recently sampled from this proposal distribution. This move is guaranteed to be stable only until #resample(Arak::Util::Random&) is called again.
Reimplemented from Arak::CN94Proposal. Definition at line 1318 of file cn94.hpp. References Arak::CN94Proposal::move(), siv, and slide_not_move. |
|
Returns the log likelihood of proposing a return to the current state from the most recently proposed state.
Reimplemented from Arak::CN94Proposal. Definition at line 1485 of file cn94.cpp. References Arak::CN94Proposal::castingArea(), Arak::ln(), localRecolorSampleProb(), Arak::CN94Proposal::MoveInteriorVertex::newLoc, Arak::ModifiedCN94Proposal::SlideInteriorVertex::next, Arak::Coloring::numBoundaryEdges(), Arak::Coloring::numInteriorEdges(), Arak::Coloring::numVertices(), Arak::CN94Proposal::rll(), siv, slide_not_move, Arak::CN94Proposal::MoveInteriorVertex::vertex, Arak::Coloring::VertexHandle, ZETA_LOCAL_NOT_GLOBAL_BD_TRI_BIRTH, ZETA_LOCAL_NOT_GLOBAL_RECOLOR, and ZETA_SLIDE_NOT_MOVE_INT_VERTEX. |
|
Samples a boundary triangle birth move and updates this proposal object so the sampled move is the current proposal.
With some probability, the recolor move of the Clifford & Nicholls (1994) proposal distribution is sampled; with the remaining probability a recolor move is sampled as follows. A window edge
Reimplemented from Arak::CN94Proposal. Definition at line 1286 of file cn94.cpp. References Arak::Coloring::BdEdgeHandle, Arak::Coloring::getBoundaryEdge(), Arak::Coloring::interior(), Arak::Coloring::newBoundaryTriangle(), Arak::Coloring::numBoundaryEdges(), Arak::Geometry::Point, Arak::CN94Proposal::sampleBoundaryTriangleBirth(), Arak::Util::Random::uniform(), Arak::Geometry::Vector, and ZETA_LOCAL_NOT_GLOBAL_BD_TRI_BIRTH. |
|
Samples a move/slide interior vertex move and updates this proposal object so the sampled move is the current proposal. With some probability, the move interior vertex move of the Clifford & Nicholls (1994) proposal distribution is sampled; with the remaining probability a slide interior vertex move.
Reimplemented from Arak::CN94Proposal. Definition at line 1413 of file cn94.cpp. References Arak::CN94Proposal::sampleMoveInteriorVertex(), sampleSlideInteriorVertex(), slide_not_move, Arak::Util::Random::uniform(), and ZETA_SLIDE_NOT_MOVE_INT_VERTEX. |
|
Samples a recolor move and updates this proposal object so the sampled move is the current proposal.
With some probability, the recolor move of the Clifford & Nicholls (1994) proposal distribution is sampled; with the remaining probability a recolor move is sampled as follows. An interior vertex
Reimplemented from Arak::CN94Proposal. Definition at line 1212 of file cn94.cpp. References Arak::Util::Random::bernoulli(), Arak::Coloring::InteriorEdge::CellEntry, Arak::Coloring::InteriorEdge::CellEntryList, Arak::Coloring::getInteriorEdge(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::numInteriorEdges(), Arak::Coloring::recolorQuadrilateral(), Arak::CN94Proposal::sampleRecolor(), Arak::Geometry::Segment, Arak::Util::Random::uniform(), and ZETA_LOCAL_NOT_GLOBAL_RECOLOR. |
|
Samples a slide interior vertex move and updates this proposal object so the sampled move is the current proposal.
An interior vertex
Definition at line 1383 of file cn94.cpp. References Arak::Util::Random::bernoulli(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::interior(), Arak::Coloring::moveIntVertex(), Arak::Coloring::numVertices(), Arak::Geometry::Point, Arak::Coloring::randomVertex(), Arak::ModifiedCN94Proposal::SlideInteriorVertex::reset(), siv, slide_not_move, Arak::Util::Random::uniform(), Arak::Geometry::Vector, and Arak::Coloring::VertexHandle. Referenced by sampleMoveInteriorVertex(). |
|
The most recently proposed "slide interior vertex" move.
Definition at line 1250 of file cn94.hpp. Referenced by ll(), move(), rll(), and sampleSlideInteriorVertex(). |
|
This flag indicates whether miv represents a slide interior vertex move rather than a move interior vertex move. This is used to correctly evaluate proposal probabilities.
Definition at line 1267 of file cn94.hpp. Referenced by ll(), move(), rll(), sampleMoveInteriorVertex(), and sampleSlideInteriorVertex(). |
|
The probability that a local boundary triangle birth move is proposed rather than a global boundary triangle birth move.
Definition at line 1186 of file cn94.hpp. Referenced by ll(), ModifiedCN94Proposal(), rll(), and sampleBoundaryTriangleBirth(). |
|
The probability that a local recolor move is proposed rather than a global recolor move.
Definition at line 1160 of file cn94.hpp. Referenced by ll(), ModifiedCN94Proposal(), rll(), and sampleRecolor(). |
|
The probability that a slide interior vertex move is proposed rather than a move interior vertex move.
Definition at line 1256 of file cn94.hpp. Referenced by ll(), ModifiedCN94Proposal(), rll(), and sampleMoveInteriorVertex(). |