中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

KmlDssSolve

对矩阵做回代求解,需先使用KmlDssFactorize进行分解。

接口定义

C Interface:

int KmlDssSolve(KmlDssSolver *solver, const KmlSolverMatrix *b, KmlSolverMatrix *x, const KmlDssSolveOption *option);

参数

参数名

类型

描述

输入/输出

solver

KmlDssSolver *

由KmlDssInit创建的求解器句柄。

输入

b

KmlSolverMatrix *

右端向量结构体指针,本质是矩阵,由KmlSolverMatrixCreate函数创建,不可为空指针。

输入

x

KmlSolverMatrix *

解空间结构体指针,本质是矩阵,由KmlSolverMatrixCreate函数创建,输入不可为空指针,输出为包含求解出的x的数值数组。

输出

option

KmlDssSolveOption *

分解阶段配置选项,不可为空指针,具体内容如表1所示。

输入

表1 KmlDssSolveOption结构体字段描述

字段名

类型

描述

fieldMask

uint64_t

配置生效的字段掩码。非0的位代表配置对应字段指定的值,0的位代表使用默认值,可配置的掩码位见具体字段的说明。

stage

KmlDssSolveStage

设置回代阶段,有如下值。

  • KMLDSS_SOLVE_ALL表示全阶段回代,包括迭代修正,默认选项。
  • KMLDSS_SOLVE_FORWARD表示只做前向回代。
  • KMLDSS_SOLVE_DIAGONAL表示只做对角块求解。
  • KMLDSS_SOLVE_BACKWARD表示只做后向回代。
  • KMLDSS_SOLVE_REFINE表示只做迭代修正。

掩码位:KMLDSS_SOLVE_OPTION_SOLVE_STAGE

refineMethod

KmlDssRefineMethod

迭代修正方法,有如下值。

  • KMLDSS_REFINE_OFF表示关闭迭代修正,默认选项。
  • KMLDSS_REFINE_CLASSICAL表示常规迭代修正。

掩码位:KMLDSS_SOLVE_OPTION_REFINE_METHOD

refineMaxSteps

int32_t

最大迭代修正步数,有如下值。

  • 等于0表示由求解器自动决定,默认数值。
  • 大于0表示用户设置最大迭代修正步数。

掩码位:KMLDSS_SOLVE_OPTION_REFINE_MAX_STEP

refineTolerance

double

迭代修正残差阈值,该字段有如下值。

  • 等于0表示由求解器自动决定,默认数值。
  • 大于0表示用户设置迭代修正残差阈值。

掩码位:KMLDSS_SOLVE_OPTION_REFINE_TOLERANCE

迭代满足如下任一条件则立即结束迭代修正。

  • 达到refineMaxSteps步数

    其中,berr的计算方式为

返回值

返回值

类型

描述

KMLSS_NO_ERROR

int

正常执行。

KMLSS_INTERNAL_ERROR

int

内部错误。

KMLSS_NULL_ARGUMENT

int

solver,b,x,option存在空参数。

依赖

#include "kml_dss.h"

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词