- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I am just trying to solve a simple linear equation with this test program. I am using MKL 2017 with Microsoft Visual Studio and have tested other functions with the array matdescra with them working.
In the documentation, I tried following: void mkl_scsrsv (const char *transa , const MKL_INT *m , const float *alpha , const char *matdescra , const float *val , const MKL_INT *indx , const MKL_INT *pntrb , const MKL_INT *pntre , const float *x , float *y );
#include <stdio.h> #include <stdlib.h> #include "mkl.h" #define NNZ_A 12 #define M_A 6 /* This sample program tries to compute: [ 3.0, 0.0, 0.0, 4.0, 0.0, 0.0 ] [1] [ 0.0, 5.0, 0.0, 0.0, 0.0, 1.0 ] [4] [ 0.0, 0.0, 0.0, 6.0, 0.0, 0.0 ] X = [6] [ 0.0, 10.0, 0.0, 0.0, 11.0, 0.0 ] [8] [ 12.0, 0.0, 0.0, 1.0, 2.0, 3.0 ] [2] [ 0.0, 0.0, 8.0, 0.0, 0.0, 0.0 ] [4] */ int main() { float A[NNZ_A] = { 3.0, 4.0, 5.0, 1.0, 6.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 8.0 }; MKL_INT A_col[NNZ_A] = { 1, 4, 2, 6, 4, 2, 5, 1, 4, 5, 6, 3 }; MKL_INT A_rowIndex[M_A + 1] = { 1, 3, 5, 6, 8, 12, 13 }; char matdescra[6]; char transa = 'n'; MKL_INT m = M_A; MKL_INT k = M_A; float alpha = 1.0; float X[M_A] = { 1.0, 4.0, 6.0, 8.0, 2.0, 4.0 }; float Y[M_A] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; matdescra[0] = 'g'; matdescra[3] = 'c'; mkl_scsrsv(&transa, &m, &alpha, matdescra, A, A_col, A_rowIndex, &(A_rowIndex[1]), X, Y); getchar(); return 0; }
Yet I get the error message:
Intel MKL ERROR: Parameter 4 was incorrect on entry to MKL_SCSRSV.
I just cannot get matdescra working on the CSR function for some reason. I appreciate any help, I have been stuck on what to do.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The point is that this routine can only be used for sparse upper or lower triangular matrices, so that matdescra[0]='G' is inconsistent.
Please take a look at the description at https://software.intel.com/ru-ru/node/520828#1AEAB8E0-C05B-46E4-ACDC-203CFA5E668A:
alpha is scalar, x and y are vectors, A is a sparse upper or lower triangular matrix with unit or non-unit main diagonal, AT is the transpose of A.
Best regards,
Maria
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page