Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | Public Attributes | List of all members
PSSMLTPrimarySamplerImpl Class Referencefinal

Public Member Functions

 LM_COMPONENT_IMPL_DEF ("default")
 
virtual SamplerClone () const override
 
virtual void SetSeed (unsigned int seed) override
 
virtual Math::Float Next () override
 
virtual unsigned int NextUInt () override
 
virtual Math::Vec2 NextVec2 () override
 
virtual RandomRng () override
 
virtual void Configure (Random *rng, const Math::Float &s1, const Math::Float &s2) override
 
virtual void Accept () override
 
virtual void Reject () override
 
virtual void EnableLargeStepMutation (bool enable) override
 
virtual bool LargeStepMutation () const override
 
virtual void BeginRestore (RewindableSampler &rewindableSampler) override
 
virtual void EndRestore () override
 
virtual void GetCurrentSampleState (std::vector< Math::Float > &samples) const override
 
virtual void GetCurrentSampleState (std::vector< Math::Float > &samples, int numSamples) override
 
- Public Member Functions inherited from PSSMLTPrimarySampler
 LM_COMPONENT_INTERFACE_DEF ("pssmltprimarysampler")
 
- Public Member Functions inherited from Sampler
LM_PUBLIC_API void SetSeedWithCurrentTime ()
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Public Attributes

Math::Float s1
 
Math::Float s2
 Kernel size parameters.
 
Math::Float logRatio
 Temporary variable (for efficiency)
 
Randomrng
 Current random number generator.
 
std::unique_ptr< RandommanagedRng
 Managed instance of RNG.
 
long long time
 Number of accepted mutations.
 
long long largeStepTime
 Time of the last accepted large step.
 
bool enableLargeStep
 Indicates the next mutation is the large step.
 
int currentIndex
 Current sample index.
 
std::vector< PSSMLTPrimarySampleu
 List of current samples.
 
std::vector< std::tuple< int,
PSSMLTPrimarySample > > 
prevSamples
 Temporary list for preserving previous samples (restored if rejected)
 
Inheritance diagram for PSSMLTPrimarySamplerImpl:
PSSMLTPrimarySampler Sampler Component SIMDAlignedType

Member Function Documentation

virtual void PSSMLTPrimarySamplerImpl::Accept ( )
inlineoverridevirtual

Accept mutation. Indicates to accept mutated samples.

Implements PSSMLTPrimarySampler.

virtual void PSSMLTPrimarySamplerImpl::BeginRestore ( RewindableSampler rewindableSampler)
inlineoverridevirtual

Begin to restore samples. Begins to set internal sample state using the restored sequence of samples with rewindable sampler. Path sampling process dispatched between BeginRestore and EndRestore is recorded in a form of primary samples.

Parameters
rewindableSamplerRewindable sampler.
See also
EndRestore

Implements PSSMLTPrimarySampler.

virtual Sampler* PSSMLTPrimarySamplerImpl::Clone ( ) const
inlineoverridevirtual

Clone the sampler.

Returns
Duplicated sampler.

Implements Sampler.

virtual void PSSMLTPrimarySamplerImpl::Configure ( Random rng,
const Math::Float &  s1,
const Math::Float &  s2 
)
inlineoverridevirtual

Configure the sampler. Configure and initializes the sampler. This function must be called before use.

Parameters
rngRandom number generator.
s1Lower bound of the kernel.
s2Upper bound of the kernel.

Implements PSSMLTPrimarySampler.

virtual void PSSMLTPrimarySamplerImpl::EnableLargeStepMutation ( bool  enable)
inlineoverridevirtual

Enable large step mutation. Enables to use large step mutation in the next mutation step.

Parameters
enableEnabled if true.

Implements PSSMLTPrimarySampler.

virtual void PSSMLTPrimarySamplerImpl::EndRestore ( )
inlineoverridevirtual

End to restore samples. Corresponds to BeginRestore.

See also
BeginRestore

Implements PSSMLTPrimarySampler.

virtual bool PSSMLTPrimarySamplerImpl::LargeStepMutation ( ) const
inlineoverridevirtual

Check if current mutation is large step mutation.

Return values
trueCurrent mutation is large step mutation.
falseCurrent mutation is small step mutation.

Implements PSSMLTPrimarySampler.

virtual Math::Float PSSMLTPrimarySamplerImpl::Next ( )
inlineoverridevirtual

Sample a floating-point value.

Returns
Sampled value.

Implements Sampler.

virtual unsigned int PSSMLTPrimarySamplerImpl::NextUInt ( )
inlineoverridevirtual

Sample a unsigned integer value.

Returns
Sampled value.

Implements Sampler.

virtual Math::Vec2 PSSMLTPrimarySamplerImpl::NextVec2 ( )
inlineoverridevirtual

Sample a floating-point 2d vector value.

Returns
Sampled value.

Implements Sampler.

virtual void PSSMLTPrimarySamplerImpl::Reject ( )
inlineoverridevirtual

Reject mutation. Indicates to reject mutated samples. The internal state is restored to previous state.

Implements PSSMLTPrimarySampler.

virtual Random* PSSMLTPrimarySamplerImpl::Rng ( )
inlineoverridevirtual

Ger underlying random number generator if available.

Returns
Random number generator.

Implements Sampler.

virtual void PSSMLTPrimarySamplerImpl::SetSeed ( unsigned int  seed)
inlineoverridevirtual

Set seed and initialize internal state. This function is valid only for

Parameters
seedSeed.

Implements Sampler.


The documentation for this class was generated from the following file: