我已经编写了自己的区间运算结构,为了简单起见,我们只是说这是一个由下限和上限定义的值。你们中的一些人可能知道类型范围非常相似。
我重载了整个算术运算符,如+, - ,*,/,<,>,....所以我想我应该有类似泛型类型的东西(或者应该能够实现其余的以使其成为一个)。
现在我想用我的类型工作/计算。由于我正在处理线性方程系统,需要像 SVD 这样的东西,并且不想重新发明轮子,我打算使用像 Math.NET Numerics 。但这就是他们的矩阵类所说的:
/// <summary>
/// Defines the base class for <c>Matrix</c> classes.
/// </summary>
/// <typeparam name="T">Supported data types are <c>double</c>, <c>single</c>, <see cref="Complex"/>, and <see cref="Complex32"/>.</typeparam>
[Serializable]
public abstract partial class Matrix<T> :
IFormattable, IEquatable<Matrix<T>>
#if !PORTABLE
, ICloneable
#endif
where T : struct, IEquatable<T>, IFormattable
简而言之:他们说只允许双重,单一和复杂。所以我的泛型类型不会工作,即使它实现了所有列出的接口,对吧?
所以:我是对的,我不能在我的类型中使用Math.Net数字?你知道其他数学库会支持我的类型/通用吗?我真的必须编写自己的实现吗?
提前致谢!
答案 0 :(得分:0)
我不能直接评论(由于声誉很小),所以我必须发表一个&#34;回答&#34;,我的道歉!
我不认为你所拥有的是&#34;泛型类型&#34;,它是一种特定的,自定义的(非内置的)类型。
现在假设您实际上可以使用Matrix抽象类(顺便说一下,您应该自己尝试使用它)来表示区间矩阵。你仍然会留下所有艰苦的工作,因为计算区间矩阵的SVD并不是我所知道的与任何特定矩阵的SVD直接相关,或者是它?同样,对于区间特征值/特征向量计算。