template <class T, int N>
class vtb::core::MA_wavy_surface_generator

Based on moving-average model.

Base classes
Types
Methods
template <class T, int N>
class vtb::core::AR_wavy_surface_generator

Based on autoregerssive model.

Base classes
Types
  • using solver_ptr = std::unique_ptr< solver_type >
  • using grid_type = Grid< T, N >
  • using array_type = Array< T, N >
Methods
  • generate(const grid_type & grid, array_type & result) -> voidvirtual
  • ~AR_wavy_surface_generator()virtual
  • AR_wavy_surface_generator()
template <class T, int N>
class vtb::core::ARMA_wavy_surface_generator_base
Derived classes
Types
  • using rect3 = blitz::RectDomain< N >
  • using vec3 = blitz::TinyVector< T, N >
  • using generator_ptr = std::unique_ptr< generator_type >
  • using generator_type = Wavy_surface_generator< T >
  • using solver_ptr = std::unique_ptr< solver_type >
  • using solver_type = Yule_walker_solver< T, N >
  • using prng_type = std::mt19937
  • using array_type = Array< T, N >
  • using grid_type = Grid< T, N >
Methods
  • generate_white_noise(array_type result) -> voidprotected
  • calculate_coefficients() -> void
  • decay() const -> const vec3 &
  • decay(const vec3 & rhs) -> void
  • coefficient_solver() -> solver_type *
  • coefficient_solver() const -> const solver_type *
  • coefficient_solver(solver_ptr && ptr) -> void
  • template <class SeedSequence>
    seed(SeedSequence & seq) -> void
  • seed() -> void
  • variance() const -> T
  • white_noise_variance() const -> T
  • coefficients() const -> const array_type &
  • acf() const -> const array_type &
  • acf(array_type acf_in) -> void
  • acf_generator() const -> const generator_ptr &
  • acf_generator(generator_ptr ptr) -> void
  • has_acf_generator() const -> bool
  • has_acf() const -> bool
  • has_coefficients() const -> bool
  • generate(const grid_type & grid, array_type & result) -> voidvirtual
  • ARMA_wavy_surface_generator_base(array_type acf_in)explicit
  • ~ARMA_wavy_surface_generator_base()virtual
  • ARMA_wavy_surface_generator_base()
class vtb::core::Invalid_ARMA_process
Base classes
  • public exception
Methods
  • what() const -> const char *
  • num_bad_roots() const -> int
  • Invalid_ARMA_process(int nbadroots)explicit
template <class T, int N>
covariance(blitz::Array< T, N > lhs, blitz::Array< T, N > rhs) -> blitz::Array< T, N >
template <class T>
copy(const std::unique_ptr< T > & ptr) -> std::unique_ptr< T >
template <class T, int N>
covariance(blitz::Array< T, N > lhs, blitz::Array< T, N > rhs, Chirp_Z_transform< std::complex< T >, N > & fft) -> blitz::Array< T, N >
template <class T, int N>
auto_covariance(const blitz::Array< T, N > & rhs) -> blitz::Array< T, N >

Computes autocovariance function of three-dimensional field.

rhs
symmetric three-dimensional field

  • Does not subtract mean value.
  • Does not divide by the variance.
  • Uses the following formula. Assumes, that the field is symmetric and periodic in each dimension. Uses fast Fourier transforms to speed up the computation:

template <class T, int N>
correlation(blitz::Array< T, N > lhs, blitz::Array< T, N > rhs) -> blitz::Array< T, N >
template <class T, int N>
validate_process(blitz::Array< T, N > phi) -> void

Check AR (MA) process stationarity (invertibility).

  1. Find roots of the polynomial .
  2. Check if some roots do not lie outside the unit disk.

template <class T, int N>
correlation(blitz::Array< T, N > lhs, blitz::Array< T, N > rhs, Chirp_Z_transform< std::complex< T >, N > & fft) -> blitz::Array< T, N >