算法 9.2 展示了各个子程序之间的依赖关系。 我们根据四个大致定义的角色将这些子程序分组:
tangent
)、线性移动(move
)以及用于协变微分的连接项(connection
)。这些子程序独立于目标函数组,但对几何化目标函数组至关重要。
grad
)和Hessian(dgrad
)。此外,还包括两个用于求逆协变Hessian的子程序(invdgrad_CG
和invdgrad_MINRES
)。该组提供了构建高层次算法组实现所需的原始工具。最后,检测(partition
)和移除(nosym
)块对角正交对称性的函数也位于该组。
Fline
、dFline
和gradline
),并定义收敛准则。
最后,每个函数都从包含有关流形和计算信息的SGParameters
全局结构中读取数据。在我们的示例中,我们使用了一个单独的全局FParameters
来存储与计算F(Y)相关的信息。SGParameters
的字段在sg_min
中设置。