M2
This commit is contained in:
39
src/Samples/C22Samples.cs
Normal file
39
src/Samples/C22Samples.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System.Numerics;
|
||||
using Skeleton.Algebra.DimensionProviders;
|
||||
using Skeleton.Utils.Helpers;
|
||||
|
||||
namespace Skeleton.Samples;
|
||||
using C22 = Algebra.CategoryOf<IDim2>.OnField<Complex>.FMatrix;
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
public static class C22Samples
|
||||
{
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
/// <param name="a"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<C22> C22AnySamples(this IEnumerable<double> a)
|
||||
{
|
||||
(Complex, Complex)[] w = a
|
||||
.RISamples()
|
||||
.ShuffleZip()
|
||||
.ToArray();
|
||||
foreach (((Complex, Complex), (Complex, Complex), (Complex, Complex)) info in w.ShuffleZip2())
|
||||
yield return new C22(
|
||||
info.Item1.Item1, info.Item1.Item2,
|
||||
info.Item2.Item1, info.Item2.Item2
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
/// <param name="a"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<C22> C22InvertibleSamples(this IEnumerable<double> a)
|
||||
{
|
||||
foreach (C22 m in a.C22AnySamples())
|
||||
if (m.Det().Magnitude > 0.2d)
|
||||
yield return m;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user