LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
precond_internal.h 文件参考
#include <math.h>
#include <string.h>
#include "memory_bridge.h"
#include "internal.h"
#include "lmmc/precond.h"
#include "sparse_internal.h"
precond_internal.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

结构体

struct  lmmc_precond_ilu_impl_t
struct  lmmc_ilu_row_t
 行工作区仅分配一次,以下指针均借用该内存。 更多...

函数

lmmc_status_t lmmc_precond_validate_spd (const lmmc_precond_t *precond, size_t size)
int lmmc_find_col_pos (const size_t *cols, size_t start, size_t end, size_t col, size_t *pos)
void lmmc_ilu_impl_destroy (lmmc_precond_ilu_impl_t *impl)
lmmc_status_t lmmc_ilu_impl_create (size_t size, lmmc_precond_ilu_impl_t **out)
lmmc_status_t lmmc_ilu_impl_reserve (lmmc_precond_ilu_impl_t *impl, size_t required)
lmmc_status_t lmmc_ilu_row_bytes (size_t n, size_t fill, size_t *bytes)
lmmc_status_t lmmc_ilu_row_create (size_t n, size_t fill, size_t bytes, lmmc_ilu_row_t *row)
void lmmc_ilu_row_reset (lmmc_ilu_row_t *row)
void lmmc_ilu_select (const lmmc_ilu_row_t *row, size_t i, int lower, lmmc_real_t drop_tol, size_t max_keep, size_t *cols, size_t *count)
lmmc_status_t lmmc_ilu_apply (const lmmc_precond_t *precond, const lmmc_vec_t *rhs, lmmc_vec_t *out)

结构体说明

◆ lmmc_precond_ilu_impl_t

struct lmmc_precond_ilu_impl_t

在文件 precond_internal.h 第 11 行定义.

lmmc_precond_ilu_impl_t 的协作图:
成员变量
size_t size
size_t nnz
size_t capacity
size_t * row_ptr
size_t * col_idx
lmmc_real_t * lu_values
size_t * diag_pos
lmmc_real_t * y_arr

◆ lmmc_ilu_row_t

struct lmmc_ilu_row_t

行工作区仅分配一次,以下指针均借用该内存。

在文件 precond_internal.h 第 23 行定义.

lmmc_ilu_row_t 的协作图:
成员变量
lmmc_real_t * values
size_t * active
size_t * lower
size_t * upper
unsigned char * present
unsigned char * processed
size_t count

函数说明

◆ lmmc_precond_validate_spd()

lmmc_status_t lmmc_precond_validate_spd ( const lmmc_precond_t * precond,
size_t size )

在文件 precond.c 第 3 行定义.

引用了 lmmc_precond_t::impl, LMMC_PRECOND_JACOBI, LMMC_PRECOND_NONE, lmmc_precond_validate_spd(), LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NOT_POSITIVE_DEFINITE, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_precond_t::size , 以及 lmmc_precond_t::type.

被这些函数引用 lmmc_precond_validate_spd().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_find_col_pos()

int lmmc_find_col_pos ( const size_t * cols,
size_t start,
size_t end,
size_t col,
size_t * pos )

在文件 precond_workspace.c 第 3 行定义.

引用了 lmmc_find_col_pos().

被这些函数引用 lmmc_find_col_pos().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_impl_destroy()

void lmmc_ilu_impl_destroy ( lmmc_precond_ilu_impl_t * impl)

在文件 precond_workspace.c 第 25 行定义.

引用了 lmmc_precond_ilu_impl_t::capacity, lmmc_precond_ilu_impl_t::col_idx, lmmc_precond_ilu_impl_t::diag_pos, lmmc_ilu_impl_destroy(), lmmc_memory_free(), LMMC_REAL_CLEAR, lmmc_precond_ilu_impl_t::lu_values, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.

被这些函数引用 lmmc_ilu_impl_create(), lmmc_ilu_impl_destroy(), lmmc_precond_create_ilu0(), lmmc_precond_create_ilut() , 以及 lmmc_precond_destroy().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_impl_create()

lmmc_status_t lmmc_ilu_impl_create ( size_t size,
lmmc_precond_ilu_impl_t ** out )

在文件 precond_workspace.c 第 115 行定义.

引用了 lmmc_precond_ilu_impl_t::diag_pos, lmmc_ilu_impl_create(), lmmc_ilu_impl_destroy(), lmmc_memory_alloc(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.

被这些函数引用 lmmc_ilu_impl_create() , 以及 lmmc_precond_create_ilut().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_impl_reserve()

lmmc_status_t lmmc_ilu_impl_reserve ( lmmc_precond_ilu_impl_t * impl,
size_t required )

在文件 precond_workspace.c 第 50 行定义.

引用了 lmmc_precond_ilu_impl_t::capacity, lmmc_precond_ilu_impl_t::col_idx, lmmc_ilu_impl_reserve(), lmmc_memory_alloc(), lmmc_memory_free(), LMMC_REAL_CLEAR, LMMC_REAL_INIT, LMMC_REAL_SET, LMMC_REAL_SET_D, LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::lu_values , 以及 lmmc_precond_ilu_impl_t::nnz.

被这些函数引用 lmmc_ilu_impl_reserve().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_row_bytes()

lmmc_status_t lmmc_ilu_row_bytes ( size_t n,
size_t fill,
size_t * bytes )

在文件 precond_row.c 第 3 行定义.

引用了 lmmc_ilu_row_bytes(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_ilu_row_bytes() , 以及 lmmc_precond_create_ilut().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_row_create()

lmmc_status_t lmmc_ilu_row_create ( size_t n,
size_t fill,
size_t bytes,
lmmc_ilu_row_t * row )

在文件 precond_row.c 第 28 行定义.

引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_row_create(), lmmc_memory_alloc(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_OK, lmmc_ilu_row_t::lower, lmmc_ilu_row_t::present, lmmc_ilu_row_t::processed, lmmc_ilu_row_t::upper , 以及 lmmc_ilu_row_t::values.

被这些函数引用 lmmc_ilu_row_create() , 以及 lmmc_precond_create_ilut().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_row_reset()

void lmmc_ilu_row_reset ( lmmc_ilu_row_t * row)

在文件 precond_row.c 第 47 行定义.

引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_row_reset(), lmmc_ilu_row_t::present, lmmc_ilu_row_t::processed , 以及 lmmc_ilu_row_t::values.

被这些函数引用 lmmc_ilu_row_reset().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_select()

void lmmc_ilu_select ( const lmmc_ilu_row_t * row,
size_t i,
int lower,
lmmc_real_t drop_tol,
size_t max_keep,
size_t * cols,
size_t * count )

在文件 precond_row.c 第 83 行定义.

引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_select(), lmmc_ilu_row_t::present , 以及 lmmc_ilu_row_t::values.

被这些函数引用 lmmc_ilu_select().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ilu_apply()

lmmc_status_t lmmc_ilu_apply ( const lmmc_precond_t * precond,
const lmmc_vec_t * rhs,
lmmc_vec_t * out )

在文件 precond_apply.c 第 48 行定义.

引用了 lmmc_precond_ilu_impl_t::diag_pos, lmmc_precond_t::impl, lmmc_ilu_apply(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size, lmmc_precond_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.

被这些函数引用 lmmc_ilu_apply() , 以及 lmmc_precond_apply().

函数调用图:
这是这个函数的调用关系图: