<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Quote:Holod, Ihor wrote: in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014626#M19412</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Holod, Ihor wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Quote:&lt;/STRONG&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Voronin, Kirill (Intel)&lt;/EM&gt; wrote:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hello Anjan,&lt;/P&gt;&lt;P&gt;FYI, in IE SpBLAS we have&amp;nbsp;mkl_sparse_?_create_coo&amp;nbsp;and mkl_sparse_convert_csr. The converter allows duplicates in the coo format. Then you can call mkl_sparse_?_export_csr and get a CSR format back from the matrix handle.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When was the consolidation of duplicates introduced? I'm asking since I have different outputs after consecutive calls of the following functions&amp;nbsp;with different versions of MKL (mkl/2019.5 and&amp;nbsp;mkl/2018.1.163)&lt;/P&gt;&lt;P&gt;mkl_sparse_d_create_coo&lt;BR /&gt;mkl_sparse_convert_csr&lt;BR /&gt;mkl_sparse_order&lt;BR /&gt;mkl_sparse_d_export_csr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Now I also encounter the same problem. I am sure that the old version function 'mkl_?csrcoo' doesn't add the duplicate values automatically. But when I try to use the new version function 'mkl_sparse_d_create_coo, mkl_sparse_d_convert_csr, mkl_sparse_d_export_csr', the mkl_sparse_d_export_csr always produce wrong results.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you tell me if you have resolved this problem? which version of MKL is ok now?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Eric&lt;/P&gt;</description>
    <pubDate>Mon, 13 Apr 2020 07:16:27 GMT</pubDate>
    <dc:creator>yang__dong</dc:creator>
    <dc:date>2020-04-13T07:16:27Z</dc:date>
    <item>
      <title>mkl_?csrcoo duplicate COO values</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014620#M19406</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I am using an old sparse linear solver in my code (of HSL) that receives the matrix in COO form and it accepts to have duplicate values. For example, (1,2,50) and (1,2,30) are two different entries and are summed up internally.&lt;/P&gt;

&lt;P&gt;I want to switch to MKL PARDISO to see about the potential speedup I can have from this. From what I get, PARDISO needs the sparse matrix to be in CSR format. Thus, I thought of using mkl_dcsrcoo with &lt;SPAN class="parmname"&gt;job&lt;/SPAN&gt;(1)=1 to get my matrix. The problem is, I don't know if it takes care of the duplicates internally or not.&lt;/P&gt;

&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jul 2015 15:59:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014620#M19406</guid>
      <dc:creator>Petros</dc:creator>
      <dc:date>2015-07-16T15:59:32Z</dc:date>
    </item>
    <item>
      <title>Hi, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014621#M19407</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I guess, the answer is no. &amp;nbsp; The function can't &amp;nbsp;handle such sum. &amp;nbsp;MKL provide example code dconverters.c or f &amp;nbsp;under MKL example folder. You may try it out.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and pardiso require the column index are in increasing order, so you may need&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;job(1)=2. &lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;Ying&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;/*&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;********************************************************************************&lt;BR /&gt;
	* &amp;nbsp; Copyright(C) 2004-2014 Intel Corporation. All Rights Reserved.&lt;BR /&gt;
	* &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	* &amp;nbsp; The source code, information &amp;nbsp;and &amp;nbsp;material ("Material") contained herein is&lt;BR /&gt;
	* &amp;nbsp; owned &amp;nbsp;by Intel Corporation or its suppliers or licensors, and title to such&lt;BR /&gt;
	* &amp;nbsp; Material remains &amp;nbsp;with Intel Corporation &amp;nbsp;or its suppliers or licensors. The&lt;BR /&gt;
	* &amp;nbsp; Material &amp;nbsp;contains proprietary information &amp;nbsp;of &amp;nbsp;Intel or &amp;nbsp;its &amp;nbsp;suppliers and&lt;BR /&gt;
	* &amp;nbsp; licensors. The &amp;nbsp;Material is protected by worldwide copyright laws and treaty&lt;BR /&gt;
	* &amp;nbsp; provisions. No &amp;nbsp;part &amp;nbsp;of &amp;nbsp;the &amp;nbsp;Material &amp;nbsp;may &amp;nbsp;be &amp;nbsp;used, &amp;nbsp;copied, reproduced,&lt;BR /&gt;
	* &amp;nbsp; modified, published, uploaded, posted, transmitted, distributed or disclosed&lt;BR /&gt;
	* &amp;nbsp; in any way &amp;nbsp;without Intel's &amp;nbsp;prior &amp;nbsp;express written &amp;nbsp;permission. No &amp;nbsp;license&lt;BR /&gt;
	* &amp;nbsp; under &amp;nbsp;any patent, copyright &amp;nbsp;or &amp;nbsp;other intellectual property rights &amp;nbsp;in the&lt;BR /&gt;
	* &amp;nbsp; Material &amp;nbsp;is &amp;nbsp;granted &amp;nbsp;to &amp;nbsp;or &amp;nbsp;conferred &amp;nbsp;upon &amp;nbsp;you, &amp;nbsp;either &amp;nbsp;expressly, &amp;nbsp;by&lt;BR /&gt;
	* &amp;nbsp; implication, inducement, &amp;nbsp;estoppel or &amp;nbsp;otherwise. &amp;nbsp;Any &amp;nbsp;license &amp;nbsp;under &amp;nbsp;such&lt;BR /&gt;
	* &amp;nbsp; intellectual &amp;nbsp;property &amp;nbsp;rights must &amp;nbsp;be express &amp;nbsp;and &amp;nbsp;approved &amp;nbsp;by &amp;nbsp;Intel in&lt;BR /&gt;
	* &amp;nbsp; writing.&lt;BR /&gt;
	* &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	* &amp;nbsp; *Third Party trademarks are the property of their respective owners.&lt;BR /&gt;
	* &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	* &amp;nbsp; Unless otherwise &amp;nbsp;agreed &amp;nbsp;by Intel &amp;nbsp;in writing, you may not remove &amp;nbsp;or alter&lt;BR /&gt;
	* &amp;nbsp; this &amp;nbsp;notice or &amp;nbsp;any other notice embedded &amp;nbsp;in Materials by Intel or Intel's&lt;BR /&gt;
	* &amp;nbsp; suppliers or licensors in any way.&lt;BR /&gt;
	*&amp;nbsp;&lt;BR /&gt;
	********************************************************************************&lt;BR /&gt;
	* &amp;nbsp; Content : MKL Sparse format converters C example&lt;BR /&gt;
	*&lt;BR /&gt;
	********************************************************************************&lt;BR /&gt;
	*&lt;BR /&gt;
	* Example program for using MKL Sparse format converters&lt;BR /&gt;
	* The following Sparse &amp;nbsp;Sparse format converters are used in the example:&lt;BR /&gt;
	*&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DDNSCSR&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DCSRCOO&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DCSRBSR&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DCSRDIA&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DCSRCSC&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MKL_DCSRSKY&lt;BR /&gt;
	*&lt;BR /&gt;
	*/&lt;BR /&gt;
	#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;
	#include "mkl_spblas.h"&lt;BR /&gt;
	#include "mkl_types.h"&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	int main()&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	/********************************************************************************&lt;BR /&gt;
	* &amp;nbsp; &amp;nbsp; Definition arrays for sparse matrix formats&lt;BR /&gt;
	********************************************************************************/&lt;BR /&gt;
	#define M &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;
	#define N &amp;nbsp; &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;
	#define LDA &amp;nbsp; &amp;nbsp;4&lt;BR /&gt;
	#define NZMAX &amp;nbsp;8&lt;BR /&gt;
	#define NNZ &amp;nbsp; &amp;nbsp;8&lt;BR /&gt;
	#define MBLK &amp;nbsp; 2&lt;BR /&gt;
	#define NN &amp;nbsp; &amp;nbsp; 2&lt;BR /&gt;
	#define INFO &amp;nbsp; 0&lt;BR /&gt;
	#define MN &amp;nbsp; &amp;nbsp; 16&lt;BR /&gt;
	#define IBASE1 1&lt;BR /&gt;
	#define IBASE2 1&lt;BR /&gt;
	#define LOCAT &amp;nbsp;2&lt;BR /&gt;
	#define IDIAG 3&lt;BR /&gt;
	#define NDIAG 4&lt;BR /&gt;
	#define INDIA 12&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;m = M, n=N, lda=LDA, nzmax=NZMAX, nnz = NNZ, mblk=MBLK, nn=NN, info=INFO,mn=MN;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ibase1 = IBASE1,ibase2 = IBASE2, locat = LOCAT,idiag = IDIAG,ndiag = NDIAG;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Adns[MN];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Adns_standard[MN];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Absr[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Absr_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{5.0, 9.0, 8.0, 2.0, 3.0, 1.0, 6.0, 4.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Acsr[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Acsr_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{5.0, 8.0, 9.0, 2.0, 3.0, 6.0, 1.0, 4.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Acsc[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Acsc_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{5.0, 9.0, 8.0, 2.0, 3.0,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1.0, 6.0, 4.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Adia[INDIA];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Adia_standard[INDIA] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{0.0, 9.0, 0.0, 1.0,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5.0, 2.0, 3.0, 4.0,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8.0, 0.0, 6.0, 0.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Asky[6];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Askyl_standard[6] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{5.0, 9.0, 2.0, 3.0, 1.0, 4.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Acoo[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Acoo_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{5.0, 8.0, 9.0, 2.0, 3.0, 6.0, 1.0, 4.0};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AI[M+1];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AI1[M+1];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AI_standard[M+1] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 3, 5, 7, 9};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJ[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJ1[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJ_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 2, 1, 2, 3, 4, 3, 4};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJB[NN];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJB_standard[MBLK] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1,2};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AIB[NN+1];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AIB_standard[MBLK+1] &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 2, 3};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ir[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ir_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 1, 2, 2, 3, 3, 4, 4};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;jc[NZMAX];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;jc_standard[NZMAX] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 2, 1, 2, 3, 4, 3, 4};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pointers[M+1];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pointersl_standard[M+1] &amp;nbsp; &amp;nbsp;= &amp;nbsp;{1, 2, 4, 5, 7};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;distance[IDIAG];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;distance_standard[IDIAG] &amp;nbsp;= &amp;nbsp;{-1, 0, 1};&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJL[6];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;AJL_standard[6] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;nbsp;{1, 1, 2, 3, 3, 4};&lt;BR /&gt;
	//*************************************************************************************************&lt;BR /&gt;
	//* &amp;nbsp; &amp;nbsp;Declaration of local variables :&lt;BR /&gt;
	//*************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT job0=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT ifail=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT nr,ldAbsr;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT i,j,ij;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; double &amp;nbsp;rfail=0.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; MKL_INT job[8];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; printf("\n EXAMPLE PROGRAM FOR CONVERTER FROM ONE\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; printf("\n &amp;nbsp; &amp;nbsp;SPARSE FORMAT ROUTINES TO OTHER &amp;nbsp; &amp;nbsp;\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; printf("\n &amp;nbsp; &amp;nbsp; &amp;nbsp; REAL SINGLE PRECISION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; locat=2;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; ibase1=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; ibase2=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[1]=ibase1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[2]=ibase2;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[3]=locat;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[4]=nzmax;&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 1 &amp;nbsp; &amp;nbsp;Obtain compressed sparse row matrix from dense matrix&lt;BR /&gt;
	//**************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( j=0; j&amp;lt;n; j++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i&amp;lt;m; i++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Adns[i + lda*j]=0.0;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[0]=5.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[1]=9.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[4]=8.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[5]=2.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[10]=3.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[11]=1.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[14]=6.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; Adns[15]=4.0;&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( j=0; j&amp;lt;n; j++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i&amp;lt;m; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Adns_standard[i + lda*j]=Adns[i + lda*j];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0]=0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5]=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_ddnscsr(job,&amp;amp;m,&amp;amp;n,Adns,&amp;amp;lda,Acsr,AJ,AI,&amp;amp;info);&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ifail=AI&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ifail!=0) goto FAILURE1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ifail=AJ&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ifail!=0) goto FAILURE1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rfail=Acsr&lt;I&gt;-Acsr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rfail!=0) goto FAILURE1;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 2 &amp;nbsp; &amp;nbsp;Obtain dense matrix from compressed sparse row matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( j=0; j&amp;lt;n; j++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i&amp;lt;m; i++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Adns[i+j*lda]=0.0;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0]=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_ddnscsr(job,&amp;amp;m,&amp;amp;n,Adns,&amp;amp;lda,Acsr,AJ,AI,&amp;amp;info);&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE2;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( j=0; j&amp;lt;n; j++){&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i&amp;lt;m; i++){&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail = Adns_standard[i + lda*j]-Adns[i + lda*j];&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rfail!=0) goto FAILURE2;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//********************************************************************************************&lt;BR /&gt;
	//* TASK 3 &amp;nbsp; &amp;nbsp;Obtain sparse coordinate matrix from cpompressed sparse row matrix&amp;nbsp;&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0]=0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5]=3;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrcoo (job,&amp;amp;n, Acsr, AJ,AI,&amp;amp;nnz,Acoo, ir,jc,&amp;amp;info);&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE3;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ifail=ir&lt;I&gt;-ir_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ifail!=0) goto FAILURE3;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=jc&lt;I&gt;-jc_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE3;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Acoo&lt;I&gt;-Acoo_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rfail!=0) goto FAILURE3;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 4 &amp;nbsp; &amp;nbsp;Obtain compressed sparse row matrix from sparse coordinate matrix&amp;nbsp;&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0]=1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5]=2;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrcoo (job,&amp;amp;n, Acsr, AJ,AI,&amp;amp;nnz,Acoo, ir,jc,&amp;amp;info);&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE4;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AJ&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Acsr&lt;I&gt;-Acsr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE4;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 5 &amp;nbsp; &amp;nbsp;Obtain block sparse row matrix from compressed sparse row matrix&amp;nbsp;&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; ldAbsr=mblk*mblk;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Absr&lt;I&gt;=0.0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[2] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrbsr (job,&amp;amp;m,&amp;amp;mblk,&amp;amp;ldAbsr,Acsr,AJ,AI,Absr,AJB,AIB,&amp;amp;info);&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; nr = 1 + (m-1) / mblk;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE5;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nr+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AIB&lt;I&gt;-AIB_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; mblk; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AJB&lt;I&gt;-AJB_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Absr&lt;I&gt;-Absr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE5;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 6 &amp;nbsp; &amp;nbsp;Obtain compressed sparse row matrix from block sparse row matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; ldAbsr=mblk*mblk;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt;nzmax; i++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Acsr&lt;I&gt;=0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 3;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrbsr (job,&amp;amp;nn,&amp;amp;mblk,&amp;amp;ldAbsr,Acsr,AJ,AI,Absr,AJB,AIB,&amp;amp;info);&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE6;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE6;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ifail=AJ&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ifail!=0) goto FAILURE6;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rfail=Acsr&lt;I&gt;-Acsr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rfail!=0) goto FAILURE6;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 7 &amp;nbsp; Obtain diagonal matrix from compressed sparse row matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; idiag; i++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;distance&lt;I&gt;=distance_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrdia(job,&amp;amp;n,Acsr,AJ,AI,Adia,&amp;amp;ndiag,distance,&amp;amp;idiag,&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Acsr,AJ,AI,&amp;amp;info);&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE7;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; idiag; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=distance&lt;I&gt;-distance_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE7;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( j=0; j&amp;lt; idiag; j++)&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i&amp;lt; ndiag; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ij = i + ndiag*j;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Adia&lt;I&gt;-Adia_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE7;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 8 &amp;nbsp; &amp;nbsp;Obtain compressed sparse row matrix from &amp;nbsp;diagonal matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 0;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrdia(job,&amp;amp;n,Acsr,AJ,AI,Adia,&amp;amp;ndiag,distance,&amp;amp;idiag,Acsr,AJ,AI,&amp;amp;info);&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE8;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE8;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AJ&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE8;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Acsr&lt;I&gt;-Acsr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE6;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 9 &amp;nbsp; &amp;nbsp;Obtain compressed sparse column matrix from compressed sparse row matrix&amp;nbsp;&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 1;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrcsc(job,&amp;amp;n,Acsr,AJ,AI,Acsc,AJ1,AI1,&amp;amp;info);&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE9;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI1&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE9;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AJ1&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE9;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Acsc&lt;I&gt;-Acsc_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE9;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 10 &amp;nbsp; &amp;nbsp;Obtain compressed sparse row matrix from compressed sparse column matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrcsc(job,&amp;amp;n,Acsr,AJ,AI,Acsc,AJ1,AI1,&amp;amp;info);&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE10;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI&lt;I&gt;-AI_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE10;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ifail=AJ&lt;I&gt;-AJ_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ifail!=0) goto FAILURE10;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nzmax; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Acsr&lt;I&gt;-Acsr_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE10;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 11 &amp;nbsp; &amp;nbsp;Obtain skyline matrix for lower triangle from compressed sparse row matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[3] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[4] = 6;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 0;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrsky(job,&amp;amp;n,Acsr,AJ,AI,Asky,pointers,&amp;amp;info);&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE11;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=pointers&lt;I&gt;-pointersl_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE11;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; nnz = pointers&lt;N&gt; - pointers[0];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nnz; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rfail=Asky&lt;I&gt;-Askyl_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rfail!=0) goto FAILURE11;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	//* TASK 12 &amp;nbsp; Obtain compressed sparse row matrix for lower triangle from skyline matrix&lt;BR /&gt;
	//***************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[0] = 1;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[3] = 0;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; job[5] = 0;&lt;/I&gt;&lt;/I&gt;&lt;/N&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mkl_dcsrsky(job,&amp;amp;n,Acsr,AJ,AI,Asky,pointers,&amp;amp;info);&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (info!=0) goto FAILURE12;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i&amp;lt; n+1; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AI&lt;I&gt;-pointersl_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE12;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; nnz = pointers&lt;N&gt; - pointers[0];&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nnz; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ifail=AJ&lt;I&gt;-AJL_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ifail!=0) goto FAILURE12;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/N&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; for ( i=0; i &amp;lt; nnz; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rfail=Acsr&lt;I&gt;-Askyl_standard&lt;I&gt;;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (rfail!=0) goto FAILURE12;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	//****************************************************************************************************&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; printf("\n &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; All tests passed &amp;nbsp;\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;&lt;BR /&gt;
	&amp;nbsp; /* Failure message to print if something went wrong */&lt;BR /&gt;
	FAILURE1: printf("\n Example FAILED to convert from dns to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 1;&lt;BR /&gt;
	FAILURE2: printf("\n Example FAILED to convert from csr to dns...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 2;&lt;BR /&gt;
	FAILURE3: printf("\n Example FAILED to convert from csr to coo...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 3;&lt;BR /&gt;
	FAILURE4: printf("\n Example FAILED to convert from coo to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 4;&lt;BR /&gt;
	FAILURE5: printf("\n Example FAILED to convert from csr to bsr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 5;&lt;BR /&gt;
	FAILURE6: printf("\n Example FAILED to convert from bsr to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 6;&lt;BR /&gt;
	FAILURE7: printf("\n Example FAILED to convert from csr to dia...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 7;&lt;BR /&gt;
	FAILURE8: printf("\n Example FAILED to convert from dia to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 8;&lt;BR /&gt;
	FAILURE9: printf("\n Example FAILED to convert from csr to csc...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 9;&lt;BR /&gt;
	FAILURE10: printf("\n Example FAILED to convert from csc to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 10;&lt;BR /&gt;
	FAILURE11: printf("\n Example FAILED to convert from csr to sky...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 11;&lt;BR /&gt;
	FAILURE12: printf("\n Example FAILED to convert from sky to csr...\n");&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp; &amp;nbsp; return 12;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;}&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Jul 2015 03:40:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014621#M19407</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2015-07-17T03:40:10Z</dc:date>
    </item>
    <item>
      <title>I have prepared on code which</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014622#M19408</link>
      <description>&lt;P&gt;I have prepared on code which will add up all elements of repeated column hope this will help someone .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;matrixsize=M value of M X M matrix&lt;/P&gt;&lt;P&gt;subroutine condense(matrixsize,elements,rowindex,columnindex,nnz)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, intent(in) :: matrixsize&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, intent(inout) :: nnz,rowindex(2e5),columnindex(2e5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double precision, intent(inout) :: elements(2e5)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, allocatable :: ia(:),ja(:)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double precision, allocatable :: a(:)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :: mm,nn,i,j&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !variable allocation&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ia(matrixsize+1))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ja(nnz))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(a(nnz))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !Assembly of stiffness matrix&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mm=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ia(1)=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nn=1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1,matrixsize !lopp over row&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1,rowindex(i+1)-rowindex(i) !loop over all elements of row&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (j .EQ. 1) then !Storing the first element&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(mm)=elements(rowindex(i)+j-1) !Storing the nonzero element&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ja(mm)=columnindex(rowindex(i)+j-1)!storing the column index&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mm=mm+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nn=nn+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !From second element checking for repeated index&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (columnindex(rowindex(i)-2+j) .EQ. columnindex(rowindex(i)+j-1)) then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mm=mm-1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nn=nn-1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(mm)=a(mm)+elements(rowindex(i)+j-1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ja(mm)=columnindex(rowindex(i)+j-1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a(mm)=elements(rowindex(i)+j-1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ja(mm)=columnindex(rowindex(i)+j-1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mm=mm+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nn=nn+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ia(i+1)=nn&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !updating the nnz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=nn-1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !Updating the sparse matrix&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elements(:)=0.d0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elements(1:nnz)=a(:)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !updating the row index&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowindex(:)=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowindex(1:matrixsize+1)=ia(1:matrixsize+1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !updating the column index&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; columnindex(:)=0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; columnindex(1:nnz)=ja(:)&lt;BR /&gt;end subroutine&lt;/P&gt;</description>
      <pubDate>Fri, 21 Feb 2020 18:46:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014622#M19408</guid>
      <dc:creator>Anjan_Mukherjee</dc:creator>
      <dc:date>2020-02-21T18:46:55Z</dc:date>
    </item>
    <item>
      <title>In situations where multiple</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014623#M19409</link>
      <description>&lt;P&gt;Anjan Mukherjee:&lt;/P&gt;&lt;P&gt;In situations where multiple entries with the same (row,column) occur, such as when assembling an stiffness matrix for a frame structure, such entries often occur out of order. Your code appears to assume that multiple contributions are contiguous, and that the items are already sorted by row and column.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Feb 2020 12:36:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014623#M19409</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-25T12:36:00Z</dc:date>
    </item>
    <item>
      <title>Hello Anjan,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014624#M19410</link>
      <description>&lt;P&gt;Hello Anjan,&lt;/P&gt;&lt;P&gt;FYI, in IE SpBLAS we have&amp;nbsp;mkl_sparse_?_create_coo&amp;nbsp;and mkl_sparse_convert_csr. The converter allows duplicates in the coo format. Then you can call mkl_sparse_?_export_csr and get a CSR format back from the matrix handle.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 04:45:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014624#M19410</guid>
      <dc:creator>Kirill_V_Intel</dc:creator>
      <dc:date>2020-02-26T04:45:16Z</dc:date>
    </item>
    <item>
      <title>Quote:Voronin, Kirill (Intel)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014625#M19411</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Voronin, Kirill (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello Anjan,&lt;/P&gt;&lt;P&gt;FYI, in IE SpBLAS we have&amp;nbsp;mkl_sparse_?_create_coo&amp;nbsp;and mkl_sparse_convert_csr. The converter allows duplicates in the coo format. Then you can call mkl_sparse_?_export_csr and get a CSR format back from the matrix handle.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When was the consolidation of duplicates introduced? I'm asking since I have different outputs after consecutive calls of the following functions&amp;nbsp;with different versions of MKL (mkl/2019.5 and&amp;nbsp;mkl/2018.1.163)&lt;/P&gt;&lt;P&gt;mkl_sparse_d_create_coo&lt;BR /&gt;mkl_sparse_convert_csr&lt;BR /&gt;mkl_sparse_order&lt;BR /&gt;mkl_sparse_d_export_csr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Mar 2020 09:52:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014625#M19411</guid>
      <dc:creator>Holod__Ihor</dc:creator>
      <dc:date>2020-03-10T09:52:31Z</dc:date>
    </item>
    <item>
      <title>Quote:Holod, Ihor wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014626#M19412</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Holod, Ihor wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Quote:&lt;/STRONG&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;Voronin, Kirill (Intel)&lt;/EM&gt; wrote:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hello Anjan,&lt;/P&gt;&lt;P&gt;FYI, in IE SpBLAS we have&amp;nbsp;mkl_sparse_?_create_coo&amp;nbsp;and mkl_sparse_convert_csr. The converter allows duplicates in the coo format. Then you can call mkl_sparse_?_export_csr and get a CSR format back from the matrix handle.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When was the consolidation of duplicates introduced? I'm asking since I have different outputs after consecutive calls of the following functions&amp;nbsp;with different versions of MKL (mkl/2019.5 and&amp;nbsp;mkl/2018.1.163)&lt;/P&gt;&lt;P&gt;mkl_sparse_d_create_coo&lt;BR /&gt;mkl_sparse_convert_csr&lt;BR /&gt;mkl_sparse_order&lt;BR /&gt;mkl_sparse_d_export_csr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Now I also encounter the same problem. I am sure that the old version function 'mkl_?csrcoo' doesn't add the duplicate values automatically. But when I try to use the new version function 'mkl_sparse_d_create_coo, mkl_sparse_d_convert_csr, mkl_sparse_d_export_csr', the mkl_sparse_d_export_csr always produce wrong results.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you tell me if you have resolved this problem? which version of MKL is ok now?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Eric&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2020 07:16:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014626#M19412</guid>
      <dc:creator>yang__dong</dc:creator>
      <dc:date>2020-04-13T07:16:27Z</dc:date>
    </item>
    <item>
      <title>Hello Eric,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014627#M19413</link>
      <description>&lt;P&gt;Hello Eric,&lt;/P&gt;&lt;P&gt;I don't know&amp;nbsp;the answer the question about when.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you be more specific about when exactly you see wrong results? I'd like to check what is going on there and if we have a bug in MKL, we definitely want to fix it. It'd be great if you can provide us an example with data.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2020 17:14:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014627#M19413</guid>
      <dc:creator>Kirill_V_Intel</dc:creator>
      <dc:date>2020-04-13T17:14:05Z</dc:date>
    </item>
    <item>
      <title>I've also noticed that mkl</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014628#M19414</link>
      <description>&lt;P&gt;I've also noticed that&amp;nbsp;mkl_sparse_d_create_coo doesn't sum up duplicates in version 2018.2.199. Looks like in 2018.4 the summation is in place.&lt;/P&gt;</description>
      <pubDate>Tue, 05 May 2020 12:23:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014628#M19414</guid>
      <dc:creator>Holod__Ihor</dc:creator>
      <dc:date>2020-05-05T12:23:47Z</dc:date>
    </item>
    <item>
      <title>in an ideal case, it would be</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014629#M19415</link>
      <description>&lt;P&gt;in an ideal case, it would be better if you will give us the reproducer and all needed specific details&amp;nbsp;which we use to investigate the issue behavior on our side with any versions of mkl ( including the latest).&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2020 00:59:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-csrcoo-duplicate-COO-values/m-p/1014629#M19415</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2020-05-07T00:59:05Z</dc:date>
    </item>
  </channel>
</rss>

