本文整理汇总了C#中System.Single.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# Single.Clone方法的具体用法?C# Single.Clone怎么用?C# Single.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Single
的用法示例。
在下文中一共展示了Single.Clone方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EigenvalueDecompositionF
/// <summary>
/// Construct an eigenvalue decomposition.</summary>
/// <param name="value">
/// The matrix to be decomposed.</param>
/// <param name="assumeSymmetric">
/// Defines if the matrix should be assumed as being symmetric
/// regardless if it is or not. Default is <see langword="false"/>.</param>
/// <param name="inPlace">
/// Pass <see langword="true"/> to perform the decomposition in place. The matrix
/// <paramref name="value"/> will be destroyed in the process, resulting in less
/// memory comsumption.</param>
public EigenvalueDecompositionF(Single[,] value, bool assumeSymmetric, bool inPlace)
{
if (value == null)
{
throw new ArgumentNullException("value", "Matrix cannot be null.");
}
if (value.GetLength(0) != value.GetLength(1))
{
throw new ArgumentException("Matrix is not a square matrix.", "value");
}
n = value.GetLength(1);
V = new Single[n, n];
d = new Single[n];
e = new Single[n];
this.symmetric = assumeSymmetric;
if (this.symmetric)
{
V = inPlace ? value : (Single[,])value.Clone();
// Tridiagonalize.
this.tred2();
// Diagonalize.
this.tql2();
}
else
{
H = inPlace ? value : (Single[,])value.Clone();
ort = new Single[n];
// Reduce to Hessenberg form.
this.orthes();
// Reduce Hessenberg to real Schur form.
this.hqr2();
}
}
示例2: EigenvalueDecompositionF
/// <summary>
/// Construct an eigenvalue decomposition.</summary>
///
/// <param name="value">
/// The matrix to be decomposed.</param>
/// <param name="assumeSymmetric">
/// Defines if the matrix should be assumed as being symmetric
/// regardless if it is or not. Default is <see langword="false"/>.</param>
/// <param name="inPlace">
/// Pass <see langword="true"/> to perform the decomposition in place. The matrix
/// <paramref name="value"/> will be destroyed in the process, resulting in less
/// memory comsumption.</param>
/// <param name="sort">
/// Pass <see langword="true"/> to sort the eigenvalues and eigenvectors at the end
/// of the decomposition.</param>
///
public EigenvalueDecompositionF(Single[,] value, bool assumeSymmetric,
bool inPlace = false, bool sort = false)
{
if (value == null)
throw new ArgumentNullException("value", "Matrix cannot be null.");
if (value.GetLength(0) != value.GetLength(1))
throw new ArgumentException("Matrix is not a square matrix.", "value");
n = value.GetLength(1);
V = new Single[n, n];
d = new Single[n];
e = new Single[n];
this.symmetric = assumeSymmetric;
if (this.symmetric)
{
V = inPlace ? value : (Single[,])value.Clone();
// Tridiagonalize.
this.tred2();
// Diagonalize.
this.tql2();
}
else
{
H = inPlace ? value : (Single[,])value.Clone();
ort = new Single[n];
// Reduce to Hessenberg form.
this.orthes();
// Reduce Hessenberg to real Schur form.
this.hqr2();
}
if (sort)
{
// Sort eigenvalues and vectors in descending order
var idx = Vector.Range(n);
Array.Sort(idx, (i, j) =>
{
if (Math.Abs(d[i]) == Math.Abs(d[j]))
return -Math.Abs(e[i]).CompareTo(Math.Abs(e[j]));
return -Math.Abs(d[i]).CompareTo(Math.Abs(d[j]));
});
this.d = this.d.Get(idx);
this.e = this.e.Get(idx);
this.V = this.V.Get(null, idx);
}
}