Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
noise_generator.h File Reference
+ Include dependency graph for src/develop/noise_generator.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef enum dt_noise_distribution_t dt_noise_distribution_t
 

Enumerations

enum  dt_noise_distribution_t {
  DT_NOISE_UNIFORM = 0 ,
  DT_NOISE_GAUSSIAN = 1 ,
  DT_NOISE_POISSONIAN = 2
}
 

Functions

static uint32_t splitmix32 (const uint64_t seed)
 
static uint32_t rol32 (const uint32_t x, const int k)
 
static float xoshiro128plus (uint32_t state[4])
 
static float uniform_noise (const float mu, const float sigma, uint32_t state[4])
 
static float gaussian_noise (const float mu, const float sigma, const int flip, uint32_t state[4])
 
static float poisson_noise (const float mu, const float sigma, const int flip, uint32_t state[4])
 
static float dt_noise_generator (const dt_noise_distribution_t distribution, const float mu, const float param, const int flip, uint32_t state[4])
 
static void uniform_noise_simd (const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, uint32_t state[4], dt_aligned_pixel_t out)
 
static void gaussian_noise_simd (const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, const int flip[4], uint32_t state[4], dt_aligned_pixel_t out)
 
static void poisson_noise_simd (const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, const int flip[4], uint32_t state[4], dt_aligned_pixel_t out)
 
static void dt_noise_generator_simd (const dt_noise_distribution_t distribution, const dt_aligned_pixel_t mu, const dt_aligned_pixel_t param, const int flip[4], uint32_t state[4], dt_aligned_pixel_t out)
 

Typedef Documentation

◆ dt_noise_distribution_t

Enumeration Type Documentation

◆ dt_noise_distribution_t

Enumerator
DT_NOISE_UNIFORM 
DT_NOISE_GAUSSIAN 
DT_NOISE_POISSONIAN 

Function Documentation

◆ dt_noise_generator()

static float dt_noise_generator ( const dt_noise_distribution_t  distribution,
const float  mu,
const float  param,
const int  flip,
uint32_t  state[4] 
)
inlinestatic

◆ dt_noise_generator_simd()

static void dt_noise_generator_simd ( const dt_noise_distribution_t  distribution,
const dt_aligned_pixel_t  mu,
const dt_aligned_pixel_t  param,
const int  flip[4],
uint32_t  state[4],
dt_aligned_pixel_t  out 
)
inlinestatic

◆ gaussian_noise()

static float gaussian_noise ( const float  mu,
const float  sigma,
const int  flip,
uint32_t  state[4] 
)
inlinestatic

◆ gaussian_noise_simd()

static void gaussian_noise_simd ( const dt_aligned_pixel_t  mu,
const dt_aligned_pixel_t  sigma,
const int  flip[4],
uint32_t  state[4],
dt_aligned_pixel_t  out 
)
inlinestatic

◆ poisson_noise()

static float poisson_noise ( const float  mu,
const float  sigma,
const int  flip,
uint32_t  state[4] 
)
inlinestatic

References flip(), M_PI, and xoshiro128plus().

Referenced by dt_noise_generator().

◆ poisson_noise_simd()

static void poisson_noise_simd ( const dt_aligned_pixel_t  mu,
const dt_aligned_pixel_t  sigma,
const int  flip[4],
uint32_t  state[4],
dt_aligned_pixel_t  out 
)
inlinestatic

◆ rol32()

static uint32_t rol32 ( const uint32_t  x,
const int  k 
)
inlinestatic

Referenced by xoshiro128plus().

◆ splitmix32()

static uint32_t splitmix32 ( const uint64_t  seed)
inlinestatic

◆ uniform_noise()

static float uniform_noise ( const float  mu,
const float  sigma,
uint32_t  state[4] 
)
inlinestatic

References xoshiro128plus().

Referenced by dt_noise_generator().

◆ uniform_noise_simd()

static void uniform_noise_simd ( const dt_aligned_pixel_t  mu,
const dt_aligned_pixel_t  sigma,
uint32_t  state[4],
dt_aligned_pixel_t  out 
)
inlinestatic

◆ xoshiro128plus()

static float xoshiro128plus ( uint32_t  state[4])
inlinestatic