Coder Social home page Coder Social logo

csparse-interop's People

Contributors

notofug avatar wo80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

csparse-interop's Issues

Nuget Package

Hi,
I think it would be good to have nuget package. There are no much nuget packages who support MKL and other packages
I've just copied whole source code into my project.

Multithreading

Hi @wo80,

I am calling the Umfpack solver in multiple threads at the same time. This seems to cause my application to crash under some circumstances (release mode about 80% of the times) without any error message or any exception. I note that using CSparse.Net in the same code works fine with no problems.

Is this something that should be expected?

Thanks,
Anthony

how to apply triplets

Hi
I tried your test benchmarks, but I was wondering how to apply real worlds (FEM) application triplets directly (a.k.a COO matrix) to these tests.

See below my computer benchmark test results.
My Specs: Intel Core i7-4790 processor (8M Cache, up to 4.00 GHz) 16GB DDR3
NVIDIA GeForce GTX 745M 4GB

Running tests (Double) ... [N = 2500]

Testing UMFPACK ... [1.587s] OK
Testing UMFPACK (symmetric) ... [1.297s] OK
Testing CHOLMOD (symmetric) ... [0.556s] OK
Testing SPQR ... [6.645s] OK
Testing SPQR (symmetric) ... [6.569s] OK
Testing SuperLU ... [1.842s] OK
Testing SuperLU (symmetric) ... [0.875s] OK
Testing PARDISO ... [0.649s] OK
Testing PARDISO (symmetric) ... [0.401s] OK

Running eigensolver tests (Double) ... [N = 2500]

Testing ARPACK ... [0.016s] OK
Testing FEAST ... [0.148s] OK
Testing MKL Extended Eigensolver ... [0.057s] OK

Best

Problem with UMFPACK and large matrices

Hi all,

I use Sparsuite library via the CSparse.Ineropt C# project. All test example in different solvers (Cholmod, CSsparse, UMFPACK) work well. The problem is that large matrices in UMFPACK cause OutOfMemory:

Error CSparse.Interop.SuiteSparse.Umfpack.UmfpackException: ERROR: out of memory
at CSparse.Interop.SuiteSparse.Umfpack.UmfpackContext1.Factorize() in C:...\CSparse.Interop\Interop\SuiteSparse\Umfpack\UmfpackContext.cs:line 60 at CSparse.Interop.SuiteSparse.Umfpack.UmfpackContext1.Solve(UmfpackSolve sys, T[] input, T[] result) in C:...\CSparse.Interop\Interop\SuiteSparse\Umfpack\UmfpackContext.cs:line 100

due to internal calling of int32 versions of UMFPACK. Is there a way how to switch to long(int64) version of UMFPACK within CSparse.Interopt? I use the following code to invert the matrix:

SparseMatrix A = new SparseMatrix(m_nDOF, m_nDOF, m_a, m_ja, m_ia);
Umfpack umfpack = new Umfpack(A);
umfpack.Solve(m_b, m_solution.P);

Thank you!

Why is PARDISO much slower than SparseLU?

I am writing a Black-Sholes PDE solver using a finite difference method in implicit scheme. I'm comparing SparseLU and PARDISO in solving the system of linear equations.

By benchmarking, I found that PARDISO is much slower than SparseLU, which is quite opposite to your benchmark result. What am I missing?

Here's my code, package versions and benchmark result.

using System.Buffers;
using BenchmarkDotNet.Attributes;
using CommunityToolkit.HighPerformance;
using CSparse;
using CSparse.Double;
using CSparse.Double.Factorization;
using CSparse.Double.Factorization.MKL;
using CSparse.Factorization;
using CSparse.Interop.MKL.Pardiso;
using CSparse.Storage;
using MathNet.Numerics;

[MemoryDiagnoser]
public class MyBenchmark
{
    private const int NSpace = 1000;
    private const int NTime = 1000;
    private Memory2D<double> _grid;
    private int _length;
    private CompressedColumnStorage<double> _matA;
    private double[] _offset;
    private double[] _vecC;
    private double[] _vecL;
    private double[] _vecU;

    [GlobalSetup]
    public void Setup()
    {
        var sMin = 0d;
        var sMax = 400d;
        var tMax = 1d;
        var r = 0.05;
        var q = 0d;
        var sigma = 0.3;
        var k = 100;

        var vecS = Generate.LinearSpaced(NSpace, sMin, sMax);
        var ds = (sMax - sMin) / (NSpace - 1);
        var vecT = Generate.LinearSpaced(NTime, 0, tMax);
        var dt = tMax / (NTime - 1);

        _grid = new double[NSpace, NTime];
        var payoff = vecS.Select(s => Math.Max(s - k, 0)).ToArray();
        _grid.Span.GetColumn(NTime - 1).TryCopyFrom(payoff);
        _grid.Span.GetRow(NSpace - 1).TryCopyFrom(vecT.Select(t => sMax * Math.Exp(-q * (tMax - t)) - k * Math.Exp(-r * (tMax - t))).ToArray());
        _grid.Span.GetRow(0).Fill(0);

        _vecL = vecS[1..^1].Select(s => 0.5 * s / ds * (r - q - s / ds * sigma * sigma) * dt).ToArray();
        _vecC = vecS[1..^1].Select(s => 1 + (r + s * s / ds / ds * sigma * sigma) * dt).ToArray();
        _vecU = vecS[1..^1].Select(s => -0.5 * s / ds * (r - q + s / ds * sigma * sigma) * dt).ToArray();

        double[] columnMajor = [.. _vecL[1..], 0, .. _vecC, 0, .. _vecU[..^1]];
        _length = NSpace - 2;
        var diagonals = DenseMatrix.OfColumnMajor(_length, 3, columnMajor);
        _matA = CompressedColumnStorage<double>.OfDiagonals(diagonals, [-1, 0, 1], _length, _length);
        _offset = Vector.Create(_length, 0);
    }

    public void SolvePde<T>(T solver) where T : ISolver<double>
    {
        for (var j = NTime - 2; j >= 0; j--)
        {
            _offset[0] = _vecL[0] * _grid.Span[0, j];
            _offset[^1] = _vecU[^1] * _grid.Span[^1, j];

            var rhs = ArrayPool<double>.Shared.Rent(_length);
            for (var i = 1; i < NSpace - 1; i++)
            {
                rhs[i - 1] = _grid.Span[i, j + 1] - _offset[i - 1];
            }

            var x = ArrayPool<double>.Shared.Rent(_length);
            solver.Solve(rhs, x);

            for (var i = 1; i < NSpace - 1; i++)
            {
                _grid.Span[i, j] = x[i - 1];
            }

            ArrayPool<double>.Shared.Return(rhs);
            ArrayPool<double>.Shared.Return(x);
        }
    }

    [Benchmark]
    public void CSparseLU()
    {
        var solver = SparseLU.Create(_matA, ColumnOrdering.MinimumDegreeAtPlusA, 1);
        SolvePde(solver);
    }

    [Benchmark]
    public void Pardiso()
    {
        var solver = new Pardiso((SparseMatrix)_matA, PardisoMatrixType.RealNonsymmetric);
        SolvePde(solver);
    }
}
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.2.2" />
<PackageReference Include="CSparse" Version="3.8.1" />
<PackageReference Include="intelmkl.redist.win-x64" Version="2024.0.0.49657" />
<PackageReference Include="MathNet.Numerics" Version="5.0.0" />
<PackageReference Include="BenchmarkDotNet" Version="0.13.10" />
// * Summary *

BenchmarkDotNet v0.13.10, Windows 11 (10.0.23590.1000)
AMD Ryzen 9 5900X, 1 CPU, 24 logical and 12 physical cores
.NET SDK 8.0.100
  [Host]     : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
  DefaultJob : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2


| Method    | Mean     | Error    | StdDev   | Allocated |
|---------- |---------:|---------:|---------:|----------:|
| CSparseLU | 21.99 ms | 0.096 ms | 0.090 ms |  518.2 KB |
| Pardiso   | 72.86 ms | 1.422 ms | 2.256 ms | 235.22 KB |

EigenValue Solvers

Hi @wo80,

I hope i won't bother you anymore after this one!

I am testing the following 2 problems but there are some issues. In Problem 1 which involves 93 x 93 Matrices, the ARPACK solver works and the MKL solver fails. The opposite is true in Problem 2 which involves 3 x 3 matrices.

It seems to me that the failures are coming from the ARPACK and MKL dlls and not your library but i just wanted to check. Your thoughts would be very valuable on this. Of course i am more interested in why the larger matrix is failing in MKL (as are most things i am testing).

Problem 1

    Dim Ke_Array = New Double(92, 92) {{233496.515545615, 340, 0, 0, 0, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {340, 517.037436845799, 0, 0, 0, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1034.0748736916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, -510, -84.9999999999999, -1521.17081958177, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 233496.515545615, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85}, {0, 0, 0, 340, 517.037436845799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083}, {-690489.546636846, -510, 0, 0, 0, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {111748.257772808, -85, 0, 0, 0, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-510, -1521.17081958177, 0, 0, 0, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-85, 243.547972945083, 0, 0, 0, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5923916.37309476, -0.00000000360887497663498, 24480, 0, -2961958.18654737, 690489.546636844, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -84.9999999999999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.00000000360887497663498, 466993.031091231, 0, 680, -690489.546636844, 111748.257772808, -510, -85.0000000000001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24480, 0, 13367.0261948794, -0.00000000000795807864051312, -12240, 510, -6683.51309743967, 1521.17081958176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, -0.00000000000795807864051312, 1034.0748736916, -510, -85.0000000000001, -1521.17081958176, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654737, -690489.546636844, -12240, -510, 5923916.37309476, 0.00000000360887497663498, 24480, 0, -2961958.18654739, 690489.546636848, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636844, 111748.257772808, 510, -85.0000000000001, 0.00000000360887497663498, 466993.031091231, 0, 680, -690489.546636848, 111748.257772808, -510, -84.9999999999999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743967, -1521.17081958176, 24480, 0, 13367.0261948794, 0.00000000000795807864051312, -12240, 510, -6683.51309743972, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85.0000000000001, 1521.17081958176, 243.547972945083, 0, 680, 0.00000000000795807864051312, 1034.0748736916, -510, -84.9999999999999, -1521.17081958177, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636848, -12240, -510, 5923916.37309479, 0, 24480, 0, -2961958.18654739, 690489.546636848, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636848, 111748.257772808, 510, -84.9999999999999, 0, 466993.031091231, 0, 679.999999999999, -690489.546636848, 111748.257772808, -510, -84.9999999999999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743972, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743972, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -84.9999999999999, 1521.17081958177, 243.547972945084, 0, 679.999999999999, 0, 1034.0748736916, -510, -84.9999999999999, -1521.17081958177, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636848, -12240, -510, 5923916.37309476, -0.00000000360887497663498, 24480, 0, -2961958.18654737, 690489.546636844, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636848, 111748.257772808, 510, -84.9999999999999, -0.00000000360887497663498, 466993.031091231, 0, 680, -690489.546636844, 111748.257772808, -510, -85.0000000000001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743972, -1521.17081958177, 24480, 0, 13367.0261948794, -0.00000000000795807864051312, -12240, 510, -6683.51309743967, 1521.17081958176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -84.9999999999999, 1521.17081958177, 243.547972945084, 0, 680, -0.00000000000795807864051312, 1034.0748736916, -510, -85.0000000000001, -1521.17081958176, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654737, -690489.546636844, -12240, -510, 5923916.37309476, 0.00000000360887497663498, 24480, 0, -2961958.18654739, 690489.546636848, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636844, 111748.257772808, 510, -85.0000000000001, 0.00000000360887497663498, 466993.031091231, 0, 680, -690489.546636848, 111748.257772808, -510, -84.9999999999999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743967, -1521.17081958176, 24480, 0, 13367.0261948794, 0.00000000000795807864051312, -12240, 510, -6683.51309743972, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85.0000000000001, 1521.17081958176, 243.547972945083, 0, 680, 0.00000000000795807864051312, 1034.0748736916, -510, -84.9999999999999, -1521.17081958177, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636848, -12240, -510, 5923916.37309479, 0, 24480, 0, -2961958.18654739, 690489.546636848, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636848, 111748.257772808, 510, -84.9999999999999, 0, 466993.031091231, 0, 679.999999999999, -690489.546636848, 111748.257772808, -510, -84.9999999999999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743972, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743972, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -84.9999999999999, 1521.17081958177, 243.547972945084, 0, 679.999999999999, 0, 1034.0748736916, -510, -84.9999999999999, -1521.17081958177, 243.547972945084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636848, -12240, -510, 5923916.37309477, -0.0000000023283064365387, 24480, 0, -2961958.18654738, 690489.546636845, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636848, 111748.257772808, 510, -84.9999999999999, -0.0000000023283064365387, 466993.031091231, 0, 680, -690489.546636845, 111748.257772808, -510, -85.0000000000001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743972, -1521.17081958177, 24480, 0, 13367.0261948794, -0.00000000000545696821063757, -12240, 510, -6683.51309743969, 1521.17081958176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -84.9999999999999, 1521.17081958177, 243.547972945084, 0, 680, -0.00000000000545696821063757, 1034.0748736916, -510, -85.0000000000001, -1521.17081958176, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654738, -690489.546636845, -12240, -510, 5923916.37309476, 0.00000000116415321826935, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636845, 111748.257772808, 510, -85.0000000000001, 0.00000000116415321826935, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743969, -1521.17081958176, 24480, 0, 13367.0261948794, 0.00000000000272848410531878, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85.0000000000001, 1521.17081958176, 243.547972945083, 0, 680, 0.00000000000272848410531878, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0, -2961958.18654739, 690489.546636846, -12240, 510}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680, -690489.546636846, 111748.257772808, -510, -85}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0, -12240, 510, -6683.51309743971, 1521.17081958177}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916, -510, -85, -1521.17081958177, 243.547972945083}, {0, 0, 0, 690489.546636846, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2961958.18654739, -690489.546636846, -12240, -510, 5923916.37309477, 0, 24480, 0}, {0, 0, 0, 111748.257772808, -85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690489.546636846, 111748.257772808, 510, -85, 0, 466993.031091231, 0, 680}, {0, 0, 0, 510, 1521.17081958177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12240, -510, -6683.51309743971, -1521.17081958177, 24480, 0, 13367.0261948794, 0}, {0, 0, 0, -85, 243.547972945083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, -85, 1521.17081958177, 243.547972945083, 0, 680, 0, 1034.0748736916}}
    Dim Ke1_CS = New CSparse.Storage.CoordinateStorage(Of Double)(Ke_Array.GetLength(0), Ke_Array.GetLength(1), 2 * Ke_Array.GetLength(0))
    For i = 0 To Ke_Array.GetLength(0) - 1
        For j = 0 To Ke_Array.GetLength(1) - 1
            If Ke_Array(i, j) <> 0 Then
                Ke1_CS.At(i, j, Ke_Array(i, j))
            End If
        Next
    Next
    Dim Kg_Array = New Double(92, 92) {{0, 18.1547619047622, 0, 0, 0, 0, 0, -197.619047619051, -0.595238095238095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {18.1547619047622, 0.0607142857142857, 0, 0, 0, -1.78571428571429, -17.2619047619051, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0.121428571428571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -448.214285714307, 45.2380952380982, -0.394642857142857, -0.0455357142857143, 448.214285714306, 45.2380952380964, 0.394642857142857, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 18.1547619047617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197.619047619051, -0.595238095237974}, {0, 0, 0, 18.1547619047617, 0.0607142857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.78571428571355, -17.2619047619049, -0.394642857142857, -0.0455357142857143}, {0, -1.78571428571429, 0, 0, 0, 0, 0, 4814.28571428577, -0.00000000000120792265079217, 0, 0, -4082.14285714292, 176.785714285717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, -17.2619047619051, 0, 0, 0, 0, 0, 349.999999999995, 132.142857142859, 0, 0, -247.619047619053, -17.2619047619049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-197.619047619051, 0.394642857142857, 0, 0, 0, 4814.28571428577, 349.999999999995, 18.9428571428572, 0, -2582.14285714288, 22.619047619046, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {-0.595238095238095, -0.0455357142857143, 0, 0, 0, -0.00000000000120792265079217, 132.142857142859, 0, 0.121428571428571, -101.785714285715, -29.7619047619052, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, -2582.14285714288, -101.785714285715, 0, 0, 8414.2857142858, -0.00000000000162003743753303, 0, 0, -5332.14285714288, 226.785714285715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 22.619047619046, -29.7619047619052, 0, 0, 249.999999999986, 232.142857142859, 0, 0, -272.619047619048, -29.761904761905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, -4082.14285714292, -247.619047619053, 3.27857142857143, 0.394642857142857, 8414.2857142858, 249.999999999986, 18.9428571428572, 0, -4332.14285714288, 122.619047619049, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 176.785714285717, -17.2619047619049, -0.394642857142857, -0.0455357142857143, -0.00000000000162003743753303, 232.142857142859, 0, 0.121428571428571, -176.785714285715, -38.0952380952382, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4332.14285714288, -176.785714285715, 0, 0, 10814.2857142857, -0.00000000000156319401867222, 0, 0, -5982.14285714276, 251.78571428571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122.619047619049, -38.0952380952382, 0, 0, 149.999999999975, 298.809523809523, 0, 0, -272.61904761904, -38.095238095238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, -5332.14285714288, -272.619047619048, 3.27857142857143, 0.394642857142857, 10814.2857142857, 149.999999999975, 18.9428571428572, 0, -5482.14285714283, 197.61904761905, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 226.785714285715, -29.761904761905, -0.394642857142857, -0.0455357142857143, -0.00000000000156319401867222, 298.809523809523, 0, 0.121428571428571, -226.785714285714, -42.2619047619041, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5482.14285714283, -226.785714285714, 0, 0, 12014.2857142856, 0.00000000000343902684107888, 0, 0, -6032.14285714276, 251.78571428571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197.61904761905, -42.2619047619041, 0, 0, 50.0000000000241, 332.142857142854, 0, 0, -247.61904761904, -42.2619047619046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5982.14285714276, -272.61904761904, 3.27857142857143, 0.394642857142857, 12014.2857142856, 50.0000000000241, 18.9428571428572, 0, -6032.14285714283, 247.61904761905, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251.78571428571, -38.095238095238, -0.394642857142857, -0.0455357142857143, 0.00000000000343902684107888, 332.142857142854, 0, 0.121428571428571, -251.785714285714, -42.261904761904, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6032.14285714283, -251.785714285714, 0, 0, 12014.2857142855, 0.000000000000511590769747272, 0, 0, -5482.14285714276, 226.78571428571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247.61904761905, -42.261904761904, 0, 0, -50.0000000000018, 332.142857142852, 0, 0, -197.619047619043, -42.2619047619041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6032.14285714276, -247.61904761904, 3.27857142857143, 0.394642857142857, 12014.2857142855, -50.0000000000018, 18.9428571428572, 0, -5982.14285714277, 272.619047619044, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251.78571428571, -42.2619047619046, -0.394642857142857, -0.0455357142857143, 0.000000000000511590769747272, 332.142857142852, 0, 0.121428571428571, -251.785714285711, -38.0952380952374, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5982.14285714277, -251.785714285711, 0, 0, 10814.2857142855, 0.00000000000108002495835535, 0, 0, -4332.14285714273, 176.785714285709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272.619047619044, -38.0952380952374, 0, 0, -149.999999999995, 298.809523809519, 0, 0, -122.619047619039, -38.0952380952376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5482.14285714276, -197.619047619043, 3.27857142857143, 0.394642857142857, 10814.2857142855, -149.999999999995, 18.9428571428572, 0, -5332.14285714278, 272.619047619048, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226.78571428571, -42.2619047619041, -0.394642857142857, -0.0455357142857143, 0.00000000000108002495835535, 298.809523809519, 0, 0.121428571428571, -226.785714285711, -29.7619047619038, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5332.14285714278, -226.785714285711, 0, 0, 8414.28571428547, 0.00000000000184741111297626, 0, 0, -2582.14285714254, 101.7857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272.619047619048, -29.7619047619038, 0, 0, -250.000000000006, 232.142857142849, 0, 0, -22.6190476190233, -29.7619047619041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4332.14285714273, -122.619047619039, 3.27857142857143, 0.394642857142857, 8414.28571428547, -250.000000000006, 18.9428571428572, 0, -4082.14285714274, 247.619047619054, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176.785714285709, -38.0952380952376, -0.394642857142857, -0.0455357142857143, 0.00000000000184741111297626, 232.142857142849, 0, 0.121428571428571, -176.78571428571, -17.2619047619024, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4082.14285714274, -176.78571428571, 0, 0, 4814.28571428514, 0.00000000000363797880709171, 0, 0, -232.142857142589, 1.78571428570307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247.619047619054, -17.2619047619024, 0, 0, -349.999999999982, 132.142857142842, 0, 0, 102.380952380964, -17.261904761903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2582.14285714254, -22.6190476190233, 3.27857142857143, 0.394642857142857, 4814.28571428514, -349.999999999982, 18.9428571428572, 0, -2232.1428571426, 197.619047619038, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101.7857142857, -29.7619047619041, -0.394642857142857, -0.0455357142857143, 0.00000000000363797880709171, 132.142857142842, 0, 0.121428571428571, -101.785714285704, -0.595238095236223, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2232.1428571426, -101.785714285704, 0, 0, 14.2857142851289, -0.00000000000199773531051051, 0, 0, 2717.85714285746, -123.214285714299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197.619047619038, -0.595238095236223, 0, 0, -450.000000000023, -1.19047619049237, 0, 0, 252.380952380966, -0.595238095235892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232.142857142589, 102.380952380964, 3.27857142857143, 0.394642857142857, 14.2857142851289, -450.000000000023, 18.9428571428572, 0, 217.85714285746, 122.619047619034, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.78571428570307, -17.261904761903, -0.394642857142857, -0.0455357142857143, -0.00000000000199773531051051, -1.19047619049237, 0, 0.121428571428571, -1.78571428570107, 20.2380952380974, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217.85714285746, -1.78571428570107, 0, 0, -5985.71428571497, -0.00000000000180477854883065, 0, 0, 6267.85714285755, -273.214285714303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122.619047619034, 20.2380952380974, 0, 0, -550.000000000024, -167.857142857162, 0, 0, 427.380952380972, 20.2380952380977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2717.85714285746, 252.380952380966, 3.27857142857143, 0.394642857142857, -5985.71428571497, -550.000000000024, 18.9428571428572, 0, 3267.85714285751, 22.6190476190348, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123.214285714299, -0.595238095235892, -0.394642857142857, -0.0455357142857143, -0.00000000000180477854883065, -167.857142857162, 0, 0.121428571428571, 123.214285714301, 45.2380952380981, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -448.214285714307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3267.85714285751, 123.214285714301, 0, 0, -13185.7142857151, -0.000000000000341060513164848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 45.2380952380982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22.6190476190348, 45.2380952380981, 0, 0, -650.000000000015, -367.857142857166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6267.85714285755, 427.380952380972, 3.27857142857143, 0.394642857142857, -13185.7142857151, -650.000000000015, 18.9428571428572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -273.214285714303, 20.2380952380977, -0.394642857142857, -0.0455357142857143, -0.000000000000341060513164848, -367.857142857166, 0, 0.121428571428571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 448.214285714306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13185.7142857146, 0.000000000000170530256582424, 0, 0, 3267.857142857, -123.214285714279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 45.2380952380964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650.000000000058, -367.857142857152, 0, 0, -22.6190476190688, 45.2380952380965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13185.7142857146, 650.000000000058, 18.9428571428572, 0.0000000000000035527136788005, 6267.85714285727, -427.380952380974, 3.27857142857144, -0.394642857142859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000000000000170530256582424, -367.857142857152, 0.0000000000000035527136788005, 0.121428571428572, 273.214285714293, 20.2380952380941, 0.394642857142859, -0.0455357142857145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6267.85714285727, 273.214285714293, 0, 0, -5985.71428571398, -0.00000000000119371179607697, 0, 0, 217.857142856812, 1.7857142857288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -427.380952380974, 20.2380952380941, 0, 0, 550.000000000033, -167.857142857135, 0, 0, -122.619047619071, 20.2380952380942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3267.857142857, -22.6190476190688, 3.27857142857144, 0.394642857142859, -5985.71428571398, 550.000000000033, 18.9428571428572, -0.0000000000000035527136788005, 2717.85714285699, -252.380952380955, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -123.214285714279, 45.2380952380965, -0.394642857142859, -0.0455357142857145, -0.00000000000119371179607697, -167.857142857135, -0.0000000000000035527136788005, 0.121428571428572, 123.21428571428, -0.595238095240514, 0.394642857142857, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2717.85714285699, 123.21428571428, 0, 0, 14.2857142865137, 0.0000000000042810199829546, 0, 0, -2232.1428571435, 101.785714285742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -252.380952380955, -0.595238095240514, 0, 0, 450.000000000081, -1.19047619045399, 0, 0, -197.619047619084, -0.595238095241227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217.857142856812, -122.619047619071, 3.27857142857143, 0.394642857142857, 14.2857142865137, 450.000000000081, 18.9428571428571, 0, -232.142857143326, -102.380952380942, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7857142857288, 20.2380952380942, -0.394642857142857, -0.0455357142857142, 0.0000000000042810199829546, -1.19047619045399, 0, 0.121428571428571, -1.78571428573308, -17.2619047619093, 0.394642857142857, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -232.142857143326, -1.78571428573308, 0, 0, 4814.28571428697, -0.00000000000247268872044515, 0, 0, -4082.14285714364, 176.785714285748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -102.380952380942, -17.2619047619093, 0, 0, 350.000000000007, 132.142857142892, 0, 0, -247.61904761909, -17.261904761909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2232.1428571435, -197.619047619084, 3.27857142857143, 0.394642857142857, 4814.28571428697, 350.000000000007, 18.9428571428572, 0.0000000000000035527136788005, -2582.14285714347, 22.6190476190641, 3.27857142857144, -0.394642857142859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101.785714285742, -0.595238095241227, -0.394642857142857, -0.0455357142857142, -0.00000000000247268872044515, 132.142857142892, 0.0000000000000035527136788005, 0.121428571428572, -101.785714285739, -29.7619047619104, 0.394642857142859, -0.0455357142857145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2582.14285714347, -101.785714285739, 0, 0, 8414.28571428729, -0.000000000000255795384873636, 0, 0, -5332.14285714355, 226.785714285743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22.6190476190641, -29.7619047619104, 0, 0, 250.000000000005, 232.142857142899, 0, 0, -272.619047619071, -29.7619047619103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4082.14285714364, -247.61904761909, 3.27857142857144, 0.394642857142859, 8414.28571428729, 250.000000000005, 18.9428571428572, -0.0000000000000035527136788005, -4332.14285714365, 122.619047619086, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176.785714285748, -17.261904761909, -0.394642857142859, -0.0455357142857145, -0.000000000000255795384873636, 232.142857142899, -0.0000000000000035527136788005, 0.121428571428572, -176.785714285748, -38.0952380952428, 0.394642857142857, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4332.14285714365, -176.785714285748, 0, 0, 10814.2857142869, -0.00000000000562749846721999, 0, 0, -5982.14285714326, 251.78571428573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122.619047619086, -38.0952380952428, 0, 0, 149.999999999914, 298.809523809557, 0, 0, -272.619047619057, -38.0952380952418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5332.14285714355, -272.619047619071, 3.27857142857143, 0.394642857142857, 10814.2857142869, 149.999999999914, 18.9428571428571, 0, -5482.14285714339, 197.619047619077, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226.785714285743, -29.7619047619103, -0.394642857142857, -0.0455357142857142, -0.00000000000562749846721999, 298.809523809557, 0, 0.121428571428571, -226.785714285737, -42.2619047619074, 0.394642857142857, -0.0455357142857142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5482.14285714339, -226.785714285737, 0, 0, 12014.2857142865, 0.0000000000021032064978499, 0, 0, -6032.14285714316, 251.785714285727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197.619047619077, -42.2619047619074, 0, 0, 49.9999999999982, 332.14285714288, 0, 0, -247.619047619055, -42.2619047619078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5982.14285714326, -272.619047619057, 3.27857142857143, 0.394642857142857, 12014.2857142865, 49.9999999999982, 18.9428571428572, 0.00000000000000233146835171283, -6032.14285714327, 247.619047619071, 3.27857142857143, -0.394642857142858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251.78571428573, -38.0952380952418, -0.394642857142857, -0.0455357142857142, 0.0000000000021032064978499, 332.14285714288, 0.00000000000000233146835171283, 0.121428571428571, -251.785714285732, -42.2619047619069, 0.394642857142858, -0.0455357142857144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6032.14285714327, -251.785714285732, 0, 0, 12014.2857142862, -0.00000000000545696821063757, 0, 0, -5482.14285714307, 226.785714285723, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247.619047619071, -42.2619047619069, 0, 0, -50.0000000000668, 332.142857142871, 0, 0, -197.619047619059, -42.2619047619059, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6032.14285714316, -247.619047619055, 3.27857142857143, 0.394642857142858, 12014.2857142862, -50.0000000000668, 18.9428571428572, -0.00000000000000111022302462516, -5982.14285714303, 272.619047619052, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251.785714285727, -42.2619047619078, -0.394642857142858, -0.0455357142857144, -0.00000000000545696821063757, 332.142857142871, -0.00000000000000111022302462516, 0.121428571428572, -251.785714285721, -38.0952380952396, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5982.14285714303, -251.785714285721, 0, 0, 10814.2857142861, -0.000000000000909494701772928, 0, 0, -4332.14285714293, 176.785714285717, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272.619047619052, -38.0952380952396, 0, 0, -150.000000000017, 298.809523809534, 0, 0, -122.619047619044, -38.0952380952395, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5482.14285714307, -197.619047619059, 3.27857142857143, 0.394642857142857, 10814.2857142861, -150.000000000017, 18.9428571428572, 0, -5332.14285714304, 272.619047619062, 3.27857142857143, -0.394642857142857, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226.785714285723, -42.2619047619059, -0.394642857142857, -0.0455357142857143, -0.000000000000909494701772928, 298.809523809534, 0, 0.121428571428571, -226.785714285723, -29.7619047619052, 0.394642857142857, -0.0455357142857143, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5332.14285714304, -226.785714285723, 0, 0, 8414.28571428586, 0.0000000000007105427357601, 0, 0, -2582.1428571429, 101.785714285716}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272.619047619062, -29.7619047619052, 0, 0, -250.000000000006, 232.142857142862, 0, 0, -22.6190476190478, -29.7619047619053}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4332.14285714293, -122.619047619044, 3.27857142857143, 0.394642857142857, 8414.28571428586, -250.000000000006, 18.9428571428572, 0, -4082.14285714293, 247.619047619052, 3.27857142857143, -0.394642857142857}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176.785714285717, -38.0952380952395, -0.394642857142857, -0.0455357142857143, 0.0000000000007105427357601, 232.142857142862, 0, 0.121428571428571, -176.785714285717, -17.261904761905, 0.394642857142857, -0.0455357142857143}, {0, 0, 0, 0, 1.78571428571355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4082.14285714293, -176.785714285717, 0, 0, 4814.28571428578, -0.000000000000596855898038484}, {0, 0, 0, 0, -17.2619047619049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247.619047619052, -17.261904761905, 0, 0, -350.000000000014, 132.142857142859}, {0, 0, 0, 197.619047619051, -0.394642857142857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2582.1428571429, -22.6190476190478, 3.27857142857143, 0.394642857142857, 4814.28571428578, -350.000000000014, 18.9428571428572, 0}, {0, 0, 0, -0.595238095237974, -0.0455357142857143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101.785714285716, -29.7619047619053, -0.394642857142857, -0.0455357142857143, -0.000000000000596855898038484, 132.142857142859, 0, 0.121428571428571}}
    Dim Kg1_CS = New CSparse.Storage.CoordinateStorage(Of Double)(Kg_Array.GetLength(0), Kg_Array.GetLength(1), 2 * Kg_Array.GetLength(0))
    For i = 0 To Kg_Array.GetLength(0) - 1
        For j = 0 To Kg_Array.GetLength(1) - 1
            If Kg_Array(i, j) <> 0 Then
                Kg1_CS.At(i, j, Kg_Array(i, j))
            End If
        Next
    Next
    Dim Eig_MKL = New CSparse.Double.Solver.ExtendedEigensolver(CSparse.Converter.ToCompressedColumnStorage(Kg1_CS).ToSparseMatrix, CSparse.Converter.ToCompressedColumnStorage(Ke1_CS).ToSparseMatrix) With {.ErrorTolerance = 6, .ComputeEigenvectors = True, .MaxIterations = 1000}
    Dim Sol_MKL = Eig_MKL.SolveGeneralized(50, CSparse.Interop.MKL.Job.Largest)
    Dim Eig_ARPACK = New CSparse.Double.Solver.Arpack(CSparse.Converter.ToCompressedColumnStorage(Kg1_CS).ToSparseMatrix, CSparse.Converter.ToCompressedColumnStorage(Ke1_CS).ToSparseMatrix) With {.Tolerance = 10 ^ -5, .ComputeEigenVectors = True, .Iterations = 1000}
    Dim Sol_ARPACK = Eig_ARPACK.SolveGeneralized(50, CSparse.Interop.ARPACK.Job.LargestMagnitude)

Problem 2

    Dim Ke2_CS = New CSparse.Storage.CoordinateStorage(Of Double)(3, 3, 9)
    Ke2_CS.At(0, 0, 2) : Ke2_CS.At(0, 1, 1) : Ke2_CS.At(0, 2, 1) : Ke2_CS.At(1, 0, 1) : Ke2_CS.At(1, 1, 2) : Ke2_CS.At(1, 2, 1) : Ke2_CS.At(2, 0, 1) : Ke2_CS.At(2, 1, 1) : Ke2_CS.At(2, 2, 4)
    Dim Kg2_CS = New CSparse.Storage.CoordinateStorage(Of Double)(3, 3, 3)
    Kg2_CS.At(0, 0, 1) : Kg2_CS.At(1, 1, 1) : Kg2_CS.At(2, 2, 1)
    Dim Eig_MKL_ = New CSparse.Double.Solver.ExtendedEigensolver(CSparse.Converter.ToCompressedColumnStorage(Kg2_CS).ToSparseMatrix, CSparse.Converter.ToCompressedColumnStorage(Ke2_CS).ToSparseMatrix) With {.ErrorTolerance = 6, .ComputeEigenvectors = True, .MaxIterations = 1000}
    Dim Sol_MKL_ = Eig_MKL_.SolveGeneralized(3, CSparse.Interop.MKL.Job.Largest)
    Dim Eig_ARPACK_ = New CSparse.Double.Solver.Arpack(CSparse.Converter.ToCompressedColumnStorage(Kg2_CS).ToSparseMatrix, CSparse.Converter.ToCompressedColumnStorage(Ke2_CS).ToSparseMatrix) With {.Tolerance = 10 ^ -5, .ComputeEigenVectors = True, .Iterations = 1000}
    Dim Sol_ARPACK_ = Eig_ARPACK_.SolveGeneralized(3, CSparse.Interop.ARPACK.Job.LargestMagnitude)

Thanks,
Anthony

Any plan to support MKL sparse QR?

Dear @wo80 ,

Thanks for the great work to help using sparse sovlers in C#. I am a newbie to sparse sovlers and I made a incomprehensive survey of direct solvers. Obviously suitesparse and pardiso are the most common solvers, which you have already integrated into the project.

While it is quite fast especially for large matrices, according to your benchmark result, pardiso can only cope with square matrices. MKL has introduced sparse qr solver which shows much higher performance over SuiteSparse SPQR. I am wondering if you have any plan to implement the interface between CSparse.net and mkl Sparse QR. Since I am a newbie to both sparse sovlers and C#, I just can't make a PR in short time. If you are busy, maybe I can try a simple version some time later. Anyway, the project is terrific, thank you again!

Pardiso solver problem

image

Hi, I'm trying the pardiso solver. I've moved 'mkl_intel_thread.dll', 'mkl_rt.dll' to the folder the directory where my .exe files are located. But I got an error here. It means 'External component has thrown an exception'. My matrix can be successfully solved by other solvers. I don't know where the problem is. Could you please help me?

The matrix can be downloaded here
matrix.zip

Problem with MKL

hi
I get exception while trying to use MKL:

pardiso = new CSparse.Double.Factorization.MKL.Pardiso(A);
pardiso.Factorize();

there is no details for exception.
exception
this is the matrix, and can be solved with CSParse.NET cholesky without any exception.
It sais the MKL libraries throws an exception, can you please give me some hint on how can get exception details? or what is the problem with matrix or code?
I'm using MKL redistributables from oneAPI, this is file version:
mkl-ver

Thanks in advance

using

%%MatrixMarket matrix coordinate real general
12 12 110
1 1 102083333333.33
2 1 12152777777.778
3 1 -12152777777.778
4 1 -14583333333.333
5 1 14583333333.333
7 1 -38888888888.889
8 1 9722222222.2222
9 1 -9722222222.2222
10 1 -19444444444.444
11 1 -36458333333.333
12 1 2430555555.5556
1 2 12152777777.778
2 2 102083333333.33
3 2 -12152777777.778
4 2 9722222222.2222
5 2 -38888888888.889
6 2 -9722222222.2222
7 2 14583333333.333
8 2 -14583333333.333
10 2 -36458333333.333
11 2 -19444444444.444
12 2 2430555555.5556
1 3 -12152777777.778
2 3 -12152777777.778
3 3 102083333333.33
5 3 -14583333333.333
6 3 -14583333333.333
7 3 -14583333333.333
9 3 -14583333333.333
10 3 -2430555555.5556
11 3 -2430555555.5556
12 3 4861111111.1111
1 4 -14583333333.333
2 4 9722222222.2222
4 4 68055555555.556
5 4 -24305555555.556
6 4 -24305555555.556
10 4 -38888888888.889
11 4 14583333333.333
12 4 14583333333.333
1 5 14583333333.333
2 5 -38888888888.889
3 5 -14583333333.333
4 5 -24305555555.556
5 5 68055555555.556
6 5 24305555555.556
10 5 9722222222.2222
11 5 -14583333333.333
2 6 -9722222222.2222
3 6 -14583333333.333
4 6 -24305555555.556
5 6 24305555555.556
6 6 68055555555.556
10 6 9722222222.2222
12 6 -14583333333.333
1 7 -38888888888.889
2 7 14583333333.333
3 7 -14583333333.333
7 7 68055555555.556
8 7 -24305555555.556
9 7 24305555555.556
10 7 -14583333333.333
11 7 9722222222.2222
1 8 9722222222.2222
2 8 -14583333333.333
7 8 -24305555555.556
8 8 68055555555.556
9 8 -24305555555.556
10 8 14583333333.333
11 8 -38888888888.889
12 8 14583333333.333
1 9 -9722222222.2222
3 9 -14583333333.333
7 9 24305555555.556
8 9 -24305555555.556
9 9 68055555555.556
11 9 9722222222.2222
12 9 -14583333333.333
1 10 -19444444444.444
2 10 -36458333333.333
3 10 -2430555555.5556
4 10 -38888888888.889
5 10 9722222222.2222
6 10 9722222222.2222
7 10 -14583333333.333
8 10 14583333333.333
10 10 102083333333.33
11 10 12152777777.778
12 10 12152777777.778
1 11 -36458333333.333
2 11 -19444444444.444
3 11 -2430555555.5556
4 11 14583333333.333
5 11 -14583333333.333
7 11 9722222222.2222
8 11 -38888888888.889
9 11 9722222222.2222
10 11 12152777777.778
11 11 102083333333.33
12 11 12152777777.778
1 12 2430555555.5556
2 12 2430555555.5556
3 12 4861111111.1111
4 12 14583333333.333
6 12 -14583333333.333
8 12 14583333333.333
9 12 -14583333333.333
10 12 12152777777.778
11 12 12152777777.778
12 12 102083333333.33

SuiteSparse on Linux

Hi @wo80,

it is me again. UMFPACK and other SuiteSparse libraries work fine now, the current problem is that I need to switch to a Linux computer at the Uni which has 2TB RAM (due to large problems which I need to solve). What would currently help me a lot are the SuiteSparse dll(=so) libraries for Linux. I have already found MKLPardiso .so version and it, together with my C# project incl.Interop, works well. The only thing now, which I miss, is the so version of SuitSparse. Could you eventually help me with this?

Thanks,

Vita

some dlls are required

Hello @wo80,

I am trying to convert matlab built in function colamd(S) to C#, and thankfully I found csparse-interop is a perfectly matched solution. But the problem is it nees some dlls like libamd.dll etc. Can I ask how I can find these dlls?

Interop Question

Dear @wo80,

Apologies, this is not directly related to your library. I have a small request to ask of you if you can, as you have given me very good advice in the past. I have put together a small C++ library that calls some Spectra and Eigen functions, so that I can call them from VB.net. I was wondering if you could review my implementation and advise me of any improvements that could result in better performance and memory usage. I am particularly concerned about the loops that copy the result arrays at the end of the C++ functions.

Your help would be greatly appreciated.

C++ Code

extern "C" int WINAPI SPECTRA_SymGEigsSolver_WithEigenvectors(int nev, int n, int Ke_nentries, int* Ke_RowIndices, int* Ke_ColumnPointers, double* Ke_Values, int Kg_nentries, int* Kg_RowIndices, int* Kg_ColumnPointers, double* Kg_Values, double* eigenvalues, double* eigenvectors)
{
	Eigen::setNbThreads(1);//Stop Eigen Multithreading as OpenMP is Enabled
	Eigen::SparseMatrix<double> Ke(n, n);
	Eigen::Index Ke_colnum = 0;
	for (int i = 0; i < Ke_nentries; i++) {
		while (i >= Ke_ColumnPointers[Ke_colnum]) { Ke_colnum += 1; }
		Ke.insert(Ke_RowIndices[i], Ke_colnum - 1) = Ke_Values[i];
	}
	Eigen::SparseMatrix<double> Kg(n, n);
	Eigen::Index Kg_colnum = 0;
	for (int i = 0; i < Kg_nentries; i++) {
		while (i >= Kg_ColumnPointers[Kg_colnum]) { Kg_colnum += 1; }
		Kg.insert(Kg_RowIndices[i], Kg_colnum - 1) = Kg_Values[i];
	}

	// Construct matrix operation object using the wrapper class SparseSymMatProd
	using OpType = Spectra::SparseSymMatProd<double>;
	using BOpType = Spectra::SparseCholesky<double>;
	OpType op(Kg);
	BOpType Bop(Ke);

	// Construct eigen solver object, requesting the largest three eigenvalues
	Spectra::SymGEigsSolver< double, OpType, BOpType, Spectra::GEigsMode::Cholesky> geigs(op, Bop, nev, std::min(2 * nev + 1, n));

	// Initialize and compute
	geigs.init();
	Eigen::Index nconv = geigs.compute(Spectra::SortRule::LargestMagn);

	// Retrieve results
	Eigen::VectorXd evalues;
	Eigen::MatrixXd evectors;
	if (geigs.info() == Spectra::CompInfo::Successful || geigs.info() == Spectra::CompInfo::NotConverging)
	{
		evalues = geigs.eigenvalues();
		evectors = geigs.eigenvectors();
	}
	for (int i = 0; i < nconv; i++) { eigenvalues[i] = evalues[i]; }
	for (int i = 0; i < n; i++) { for (int j = 0; j < nconv; j++) { eigenvectors[i + n * j] = evectors(i, j); } }
	return nconv;
}
extern "C" bool WINAPI EIGEN_Cholesky(int n, int nentries, int* RowIndices, int* ColumnPointers, double* Values, double* Input, double* Result)
{
	Eigen::SparseMatrix<double> Ke(n, n);
	Eigen::Index K_colnum = 0;
	for (int i = 0; i < nentries; i++) {
		while (i >= ColumnPointers[K_colnum]) { K_colnum += 1; }
		Ke.insert(RowIndices[i], K_colnum - 1) = Values[i];
	}
	Eigen::VectorXd b(n), x(n);
	for (int i = 0; i < n; i++) { b[i] = Input[i]; }
	Eigen::SimplicialLDLT<Eigen::SparseMatrix<double>, Eigen::Lower, Eigen::AMDOrdering<int>> Chol;
	//Eigen::SparseLU<Eigen::SparseMatrix<double>, Eigen::COLAMDOrdering<int>> Chol;
	//Eigen::CholmodSimplicialLDLT<Eigen::SparseMatrix<double>> Chol;
	Chol.compute(Ke);
	if (Chol.info() != Eigen::Success) { return false; }
	x = Chol.solve(b);
	if (Chol.info() != Eigen::Success) { return false; }
	for (int i = 0; i < n; i++) { Result[i] = x[i]; }
	return true;
}
extern "C" bool WINAPI EIGEN_BiCGSTAB(int n, int nentries, int* RowIndices, int* ColumnPointers, double* Values, double* Input, double* Result)
{
	Eigen::SparseMatrix<double> Ke(n, n);
	Eigen::Index Ke_colnum = 0;
	for (int i = 0; i < nentries; i++) {
		while (i >= ColumnPointers[Ke_colnum]) { Ke_colnum += 1; }
		Ke.insert(RowIndices[i], Ke_colnum - 1) = Values[i];
	}
	Eigen::VectorXd b(n), x(n);
	for (int i = 0; i < n; i++) { b[i] = Input[i]; }
	Eigen::BiCGSTAB<Eigen::SparseMatrix<double>, Eigen::IncompleteLUT<double>> BCGSTCOND;//BCGSTCOND.preconditioner().setDroptol(1e-4); BCGSTCOND.preconditioner().setFillfactor(100);
	BCGSTCOND.compute(Ke);
	if (BCGSTCOND.info() != Eigen::Success) { return false; }
	x = BCGSTCOND.solve(b);
	if (BCGSTCOND.info() != Eigen::Success) { return false; }
	for (int i = 0; i < n; i++) { Result[i] = x[i]; }
	return true;
}

VB.net Code

   <DllImport("AnalysisEngine.dll", EntryPoint:="SPECTRA_SymGEigsSolver_WithEigenvectors", CallingConvention:=CallingConvention.Cdecl)>
   Private Function SPECTRA_SymGEigsSolver_WithEigenvectors(nev As Integer, n As Integer, Ke_nentries As Integer, Ke_RowIndices As Integer(), Ke_ColumnPointers As Integer(), Ke_Values As Double(),
                                                     Kg_nentries As Integer, Kg_RowIndices As Integer(), Kg_ColumnPointers As Integer(), Kg_Values As Double(), eigenvalues As Double(),
                                                     eigenvectors As Double()) As Integer
   End Function
   <DllImport("AnalysisEngine.dll", EntryPoint:="EIGEN_BiCGSTAB", CallingConvention:=CallingConvention.Cdecl)>
   Private Function EIGEN_BiCGSTAB(n As Integer, Ke_nentries As Integer, Ke_RowIndices As Integer(), Ke_ColumnPointers As Integer(), Ke_Values As Double(), input As Double(), result As Double()) As Boolean
   End Function
   <DllImport("AnalysisEngine.dll", EntryPoint:="EIGEN_Cholesky", CallingConvention:=CallingConvention.Cdecl)>
   Private Function EIGEN_Cholesky(n As Integer, Ke_nentries As Integer, Ke_RowIndices As Integer(), Ke_ColumnPointers As Integer(), Ke_Values As Double(), input As Double(), result As Double()) As Boolean
   End Function

Required DLLs

Hi @wo80,

I was having a look at this project to see how much faster it would be compared to CSparse for my particular usage and it seems that it requires 5 external DLLs (libumfpack.dll, libcholmod.dll, libspqr.dll, libsuperlu.dll, mkl_rt.dll). However, i don't have enough knowledge and experience to be able to generate these from their respective source codes. Would it be possible to upload those DLLs?

Thanks,
Anthony

ARPACK Solver does not exit!

Hello @wo80,

I am running into some cases where the ARPACK solver does not exit and keeps running with no CPU usage. I have included an example below with these matrices (thanks for including the new matrix writer!).

The way i can get this particular example to work is if i change the requested number of eigenvalues to something other than k =12. One way to get it to work is to throw an exception that way a catch statement can be used and the parameter k changed. What are your thoughts?

Dim kg = CSparse.IO.MatrixMarketReader.ReadMatrix(Of Double)("C:\Users\Anthony\Desktop\Kg")
Dim ke = CSparse.IO.MatrixMarketReader.ReadMatrix(Of Double)("C:\Users\Anthony\Desktop\Ke")
Dim Eig As CSparse.Double.Solver.Arpack = New CSparse.Double.Solver.Arpack(kg.ToSparseMatrix, ke.ToSparseMatrix) With {.Tolerance = 10 ^ -5, .ComputeEigenVectors = True, .Iterations = 1000}
Dim Solution As CSparse.Interop.ARPACK.ArpackResult(Of Double) = Eig.SolveGeneralized(12, CSparse.Interop.ARPACK.Job.LargestMagnitude)

Regards,
Anthony

Multi-threading with arpack

Hi @wo80,

I have started using the arpack solver and it is very good. Thank you for the work you have done.
The only minor issue is that i am not able to run it in multiple threads at the same time.
This is my code below. Am i doing something wrong or is it not thread safe?

'EigenProblem
Friend Function EigenProblem(Ke As CSparse.Storage.CompressedColumnStorage(Of Double), Kg As CSparse.Storage.CompressedColumnStorage(Of Double),
                             PositiveKg As Boolean, BucklingSign As BucklingSign, LC As String) As Tuple(Of Double, Double())
    'Arpack solves Ke.x = λ.Kg.x, so -Kg is required as input
    If PositiveKg = True Then
        For i = 0 To Kg.Values.Count - 1
            Kg.Values(i) *= -1
        Next
    End If
    Dim Eig As CSparse.Double.Solver.Arpack = New CSparse.Double.Solver.Arpack(Kg.ToSparseMatrix, Ke.ToSparseMatrix) With {.Tolerance = 10 ^ -5, .ComputeEigenVectors = True, .Iterations = 1000}
    Dim Solution = Eig.SolveGeneralized(Math.Min(Ke.ColumnCount - 2, 10), CSparse.Interop.ARPACK.Job.LargestMagnitude)
    Dim EigenValueIndex As Integer = -1
    For i = 0 To Solution.EigenValues.Count - 1
        Select Case BucklingSign
            Case BucklingSign.Positive
                If Solution.EigenValues(i).Real > 0 Then
                    EigenValueIndex = i
                    Exit For
                End If
            Case BucklingSign.Negative
                If Solution.EigenValues(i).Real < 0 Then
                    EigenValueIndex = i
                    Exit For
                End If
            Case BucklingSign.Any
                EigenValueIndex = 0
                Exit For
            Case Else : Throw New NotImplementedException
        End Select
    Next
    If EigenValueIndex = -1 Then
        Return Tuple.Create(Of Double, Double())(1.0 / Solution.EigenValues.Last.Real, Solution.EigenVectors.Column(Solution.EigenVectors.ColumnCount - 1))
    Else
        Dim EigenValue As Double = 1.0 / Solution.EigenValues(EigenValueIndex).Real
        Dim EigenVector As Double() = Solution.EigenVectors.Column(EigenValueIndex)
        Return Tuple.Create(Of Double, Double())(EigenValue, EigenVector)
    End If
End Function

Friend Enum BucklingSign
    Positive
    Negative
    Any
End Enum

ARPACK Solver with ComputeEigenVectors = False

Hello Christian,

I came across a possible bug. I get a NullReferenceException when the ComputeEigenVectors parameter of the ARPACK Solver is set to false. It happens at line 105 of ArpackResult.cs:

e.eigvec = InteropHelper.Pin(((DenseColumnMajorStorage<T>)eigvec).Values, handles);

Also as a side note, i was wondering if i can run something else past you. I don't know where to ask it. I've tried to write a binding for the dsygv_ function of LAPACK, but i am having a problem with the x64 version. I have described the issue here and the visual studio solution is located here. I would really appreciate it if you could glimpse over it and let me know what you think.

Thanks,
Anthony

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.