![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "develop/imageop.h"#include "develop/imageop_math.h"#include "iop/highlights/blur.h"#include "iop/highlights/pde.h"#include <math.h>#include <stdlib.h>#include <string.h>#include "common/solvers/sparse_cholesky.h"#include "common/solvers/sparse_cholesky_cl.h"
Include dependency graph for pde.c:Go to the source code of this file.
Functions | |
| static void | _lap5 (const float *const restrict field, float *const restrict laplacian, const int region_w, const int region_h) |
| static void | _apply_op (const float *const restrict field, float *const restrict output_field, float *const restrict scratch, const int order, const int region_w, const int region_h) |
| static int | _sp_row_l9 (const int y, const int x, const int region_w, const int region_h, int *const restrict targets, double *const restrict target_weights) |
| static int | _sp_row_op (const int grid_index, const int order, const int region_w, const int region_h, int *const restrict targets, double *const restrict target_weights) |
| int | _sp_pde_assemble (const uint8_t *const restrict hole, const float *const restrict diffusion, const float diffusion_const, const int order, const float lambda, const int region_w, const int region_h, int **matrix_col_ptr_out, int **matrix_row_index_out, double **matrix_values_out, int **perm_grid_out, int *n_unknowns_out, const dt_dev_pixelpipe_t *const pipe) |
| _sp_chol_t * | _sp_pde_factor (const uint8_t *const restrict hole, const float *const restrict diffusion, const int order, const float lambda, const int region_w, const int region_h, int **perm_out, int *n_unknowns_out, const dt_dev_pixelpipe_t *pipe) |
| __DT_CLONE_TARGETS__ void | _sp_pde_solve (const _sp_chol_t *const factor, const int *const restrict perm_grid, float *const restrict field, const uint8_t *const restrict hole, const float *const restrict diffusion, const float *const restrict target, const float *const restrict source, const int order, const float lambda, const int region_w, const int region_h, double *const restrict rhs, float *const restrict embedded, float *const restrict operator_out, float *const restrict scratch) |
| __DT_CLONE_TARGETS__ void | _region_pde_solve (float *const restrict field, const uint8_t *const restrict hole, const float *const restrict diffusion, const float *const restrict target, const float *const restrict source, const int order, const float lambda, const int region_w, const int region_h, float *const restrict residual, float *const restrict search_dir, float *const restrict operator_dir, float *const restrict embedded, float *const restrict scratch, const int maxiter) |
|
inlinestatic |
Definition at line 69 of file pde.c.
Referenced by _region_pde_solve(), and _sp_pde_solve().
|
inlinestatic |
Definition at line 31 of file pde.c.
References __OMP_PARALLEL_FOR__, and x.
Referenced by _apply_op().
| __DT_CLONE_TARGETS__ void _region_pde_solve | ( | float *const restrict | field, |
| const uint8_t *const restrict | hole, | ||
| const float *const restrict | diffusion, | ||
| const float *const restrict | target, | ||
| const float *const restrict | source, | ||
| const int | order, | ||
| const float | lambda, | ||
| const int | region_w, | ||
| const int | region_h, | ||
| float *const restrict | residual, | ||
| float *const restrict | search_dir, | ||
| float *const restrict | operator_dir, | ||
| float *const restrict | embedded, | ||
| float *const restrict | scratch, | ||
| const int | maxiter | ||
| ) |
Definition at line 368 of file pde.c.
References __OMP_PARALLEL_FOR__, _apply_op(), double(), and i.
Referenced by _joint_core(), and _joint_core_stage_cl_selftest().
| int _sp_pde_assemble | ( | const uint8_t *const restrict | hole, |
| const float *const restrict | diffusion, | ||
| const float | diffusion_const, | ||
| const int | order, | ||
| const float | lambda, | ||
| const int | region_w, | ||
| const int | region_h, | ||
| int ** | matrix_col_ptr_out, | ||
| int ** | matrix_row_index_out, | ||
| double ** | matrix_values_out, | ||
| int ** | perm_grid_out, | ||
| int * | n_unknowns_out, | ||
| const dt_dev_pixelpipe_t *const | pipe | ||
| ) |
Definition at line 173 of file pde.c.
References _sp_nd_order(), _sp_row_op(), double(), DT_HL_SPARSE_MAX, dt_pixelpipe_cache_alloc_align, dt_pixelpipe_cache_free_align, i, permutation, and value.
Referenced by _sp_pde_factor().
| _sp_chol_t * _sp_pde_factor | ( | const uint8_t *const restrict | hole, |
| const float *const restrict | diffusion, | ||
| const int | order, | ||
| const float | lambda, | ||
| const int | region_w, | ||
| const int | region_h, | ||
| int ** | perm_out, | ||
| int * | n_unknowns_out, | ||
| const dt_dev_pixelpipe_t * | pipe | ||
| ) |
Definition at line 308 of file pde.c.
References _sp_chol_factor(), _sp_pde_assemble(), dt_pixelpipe_cache_free_align, and factor.
Referenced by _joint_core(), and _joint_core_stage_cl_selftest().
| __DT_CLONE_TARGETS__ void _sp_pde_solve | ( | const _sp_chol_t *const | factor, |
| const int *const restrict | perm_grid, | ||
| float *const restrict | field, | ||
| const uint8_t *const restrict | hole, | ||
| const float *const restrict | diffusion, | ||
| const float *const restrict | target, | ||
| const float *const restrict | source, | ||
| const int | order, | ||
| const float | lambda, | ||
| const int | region_w, | ||
| const int | region_h, | ||
| double *const restrict | rhs, | ||
| float *const restrict | embedded, | ||
| float *const restrict | operator_out, | ||
| float *const restrict | scratch | ||
| ) |
Definition at line 334 of file pde.c.
References __OMP_PARALLEL_FOR__, _apply_op(), _sp_chol_solve(), double(), factor, and i.
Referenced by _joint_core(), and _joint_core_stage_cl_selftest().
|
static |
|
static |
Definition at line 126 of file pde.c.
References _sp_row_l9(), i, value, and x.
Referenced by _sp_pde_assemble().