1 概述
ITK 使用 VNL 数字化库为数字化编程提供源代码,综合了像 Mathematica 和 Matlab 工具包的简单使用、 C 的速度和 C++的高雅。它提供了一个高质量的 C++语言转换界面,使得数字化分析研究者可以在公共领域进行研究。 ITK 通过恰当地包含 VNL 和 ITK 之间的接口类来扩展 VNL 的功能。
2 数字化
VNL 数字化类库中包含的类有:
矩阵和向量:支持标准的矩阵和向量以及对它们类型的操作运算。
标准矩阵和向量类: 许多特定的矩阵和向量都有特定的数字化属性。vnl_diagonal_matrix类提供了一个方便快捷的对角矩阵。固定大小的矩阵和向量允许“fast-as-C”计算(参见
vnl_matrix_fixed<T,n,m>和子类样例 vnl_double_3x3 和 vnl_double_3)。
矩阵分解: vnl_svd<T>、 vnl_symmetric_eigensystem<T>和 vnl_generalized_eigensystem类。
实多项式:类 vnl_real_polynomial 储存了实多项式的系数,并提出了多项式对任意 x 的估计方法。而类 vnl_rpoly_roots提供了多项式的根。
优化:类 vnl_levenberg_marquardt、 vnl_amoeba、 vnl_conjugate_gradiedt、 vnl_lbfgs 允许用户提供的功能方法在无论有无用户提供的衍生状态下都可以进行优化。
标准函数和常量:类 vnl_math 定义常量(pi、 e、 eps 等)和简单函数(sqr、 abs、 rnd等)。类 numeric_limits 是 ISO 标准文件的一种形式,并提供了一种存储一个类型基本极限的方法。例如, numeric_limits<short>::max( )返回一个短字符型数据的最大值。
大多数 VNL 程序环绕高质量的公式语言转换 Fortran 程序来执行。在过去 40 年中数字化分析机构对 Fortran 程序进行了发展并公布于众。这些程序的中心库是“netlib”服务器
http://www.netlib.org/。国际标准技术委员会在 http://gams.nist.gov 上的 Guide to AvailableMathematical Software (GAMS)中为这个库提供了一个完美的搜索界面,同时包括有数搜索和文本搜索。
ITK 也提供了一个额外的数字化功能。一套优化方法可以在 hood下使用 VNL,并可结合注册框架使用。 Insight/Numerics/Statistics 目录中同样也提供了大量的统计学函数(并非由
VNL 而来)。另外,一个完整的有限成员包主要用来支持 ITK 中的可形变注册