AccessViolationException: ShoNS.Array.DoubleArray.From( new double[x.Length] )
-
13. února 2012 7:16
It looks like calling 'From' to convert an array into a DoubleArray will cause an error to be thrown when MultiplyTo is called.
Test code:
ShoNS.Array.SparseDoubleArray shoSparse = ShoNS.MathFunc.ArrayRandom.RandomSparseDoubleArray(1000,80);
ShoNS.Array.DoubleArray tvSho = ShoNS.Array.DoubleArray.Zeros(80, 1);
ShoNS.Array.DoubleArray xSho = ShoNS.Array.DoubleArray.From( new double[80] ).T;
tvSho.MultiplyInto( shoSparse, xSho );
System.AccessViolationException was unhandled
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=ArrayT
StackTrace:
at mkl_dcsrmm(SByte* , Int64* , Int64* , Int64* , Double* , SByte* , Double* , Int64* , Int64* , Int64* , Double* , Int64* , Double* , Double* , Int64* )
at ShoNS.Array.MKLFunc.MKL_csrmm(Boolean transA, Int64 m, Int64 n, Int64 k, Double alpha, Double* a, Int32* rowBegin, Int32* colIndx, Int32 colIndxLen, Double beta, Double* b, Int64 ldb, Double* c, Int64 ldc)
at ShoNS.Array.SparseArrayImpl<double\,1\,1>.MultiplyInto(Boolean transSparse, Double alpha, INumArray`1 denseArray, Boolean transDense, Double beta, INumArray`1 resultArray)
at ShoNS.Array.DoubleArray.MultiplyInto(Double alpha, SparseDoubleArray matrixLeft, Boolean transLeft, DoubleArray matrixRight, Boolean transRight, Double beta)
at ShoNS.Array.DoubleArray.MultiplyInto(SparseDoubleArray matrixLeft, DoubleArray matrixRight)
at LANSE.CompressedColumnMatrix.SHOParallelMultiplyVectorTo_aaT(Double[] resultVector, Double[] x) in E:\wp_orms\NonOrthogonalSVD _FLOAT\CompressedColumnMatrix.cs:line 378
at LANSE.NonOrthogonalSVD_AAT.TridiagonalStep(CompressedColumnMatrix matrix, TridiagonalWorkspace& _, Boolean nthStep) in E:\wp_orms\NonOrthogonalSVD _FLOAT\NonOrthogonalSVD_AAT.cs:line 33
at LANSE.NonOrthogonalSVD_AAT.Tridiagonalize_NoDisk(Int32 desiredEigenvalues, Int32 maxLanczosSteps, Int32 lag, CompressedColumnMatrix matrix) in E:\wp_orms\NonOrthogonalSVD _FLOAT\NonOrthogonalSVD_AAT.cs:line 87
at LANSE.NonOrthogonalSVD_AAT.Run(String filename, Int32 desiredEigenvalues, Int32 maxLanczosSteps, Int32 lag) in E:\wp_orms\NonOrthogonalSVD _FLOAT\NonOrthogonalSVD_AAT.cs:line 1148
at LANSE.Program.Main(String[] args) in E:\wp_orms\NonOrthogonalSVD _FLOAT\Program.cs:line 33
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Všechny reakce
-
13. února 2012 7:25
Also looks like there's a bug in the long signature
a.MultiplyInto(1.0,b, true, c, true, 1.0);
If transpose is true, we get an access memory violation. If false, no violation occurs.
-
27. března 2012 1:14DoubleArray.From(matrix([[1;2;3];[4;5;6;]])) write in this, no error