[no subject]

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


How much SparseLU different from SparseQR architecture-wise?

SparseLU has same interface and works just fine. Maybe we can do SparseQR
in similar way ;)?

On Mon, Aug 12, 2013 at 7:51 PM, Gael Guennebaud
<gael.guennebaud@xxxxxxxxx>wrote:

> Hi,
>
> as already observed on the forum, this error seems to show up only with
> ICC on Windows. No problem with ICC 11, 12, 13 on Linux. Moreover, I don't
> understand this issue as the base class "Eigen::BlockImpl<const
> Eigen::SparseMatrix<double, 0, int>, -1, 1, 1, Eigen::Sparse>" does has
> an operator= line 194 in src/SparseCore/SparseBlock.h. So I'm clueless here.
>
> gael
>
>
>
> On Sat, Aug 10, 2013 at 11:23 AM, Pavel Holoborodko <pavel@xxxxxxxxxxxxxxx
> > wrote:
>
>> Hi,
>>
>> I am testing solvers for sparse systems.
>> Intel C++ compiler chokes on this code:
>>
>> typedef Eigen::SparseMatrix< double > SparseDoubleMatrix;
>>
>> SparseQR< SparseDoubleMatrix, COLAMDOrdering<int> > solver;
>>
>> SparseDoubleMatrix A(10,10);
>> solver.compute(A);
>>
>> Compiler points to solver.compute(A) with error message:
>> class "Eigen::BlockImpl<const Eigen::SparseMatrix<double, 0, int>, -1, 1,
>> 1, Eigen::Sparse>" has no member "operator="
>>
>> Error persist for any OrderingType.
>>
>> Interestingly, error only shows for SparseQR. If I use SparseLU -
>> everything compiles fine.
>>
>> Full template instantiation chain lead to error is in attachment.
>>
>> Would appreciate any help & pointers how to solve the problem.
>>
>> Thank you,
>> Pavel.
>>
>>
>>
>

--e89a8f642cb2a56ab904e3be15e6
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I reported this issue on Intel C++ forum. =A0<div>From my experience Window=
s version of ICC seems to have many problems (as newer as more buggy).<div>=
Will probably try to roll back to older version.</div><div><br></div><div>
How much SparseLU different from SparseQR architecture-wise?=A0</div><div><=
br></div><div>SparseLU has same interface and works just fine. Maybe we can=
 do SparseQR in similar way ;)?=A0</div><div><br><div class=3D"gmail_quote"=
>On Mon, Aug 12, 2013 at 7:51 PM, Gael Guennebaud <span dir=3D"ltr">&lt;<a =
href=3D"mailto:gael.guennebaud@xxxxxxxxx"; target=3D"_blank">gael.guennebaud=
@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">Hi,<div><br></div><div>as a=
lready observed on the forum, this error seems to show up only with ICC on =
Windows. No problem with ICC 11, 12, 13 on Linux. Moreover, I don&#39;t und=
erstand this issue as the base class=A0<span style=3D"font-family:&#39;cour=
ier new&#39;,monospace;font-size:13px">&quot;Eigen::BlockImpl&lt;const Eige=
n::SparseMatrix&lt;double, 0, int&gt;, -1, 1, 1, Eigen::Sparse&gt;&quot;=A0=
</span>does has an operator=3D line 194 in src/SparseCore/SparseBlock.h. So=
 I&#39;m clueless here.</div>
<span class=3D"HOEnZb"><font color=3D"#888888">

<div><br></div><div>gael</div><div><br></div></font></span></div><div class=
=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><br><div class=
=3D"gmail_quote">On Sat, Aug 10, 2013 at 11:23 AM, Pavel Holoborodko <span =
dir=3D"ltr">&lt;<a href=3D"mailto:pavel@xxxxxxxxxxxxxxx"; target=3D"_blank">=
pavel@xxxxxxxxxxxxxxx</a>&gt;</span> wrote:<br>


<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div>Hi,=A0</div><div><br></div><div>I am te=
sting solvers for sparse systems.</div><div>Intel C++ compiler chokes on th=
is code:</div>


<div><br></div><div><div><div><font face=3D"courier new, monospace">typedef=
 Eigen::SparseMatrix&lt; double &gt; SparseDoubleMatrix;</font></div>
<div><font face=3D"courier new, monospace"><br></font></div><div><font face=
=3D"courier new, monospace">SparseQR&lt; SparseDoubleMatrix, COLAMDOrdering=
&lt;int&gt; &gt; solver;</font></div><div><font face=3D"courier new, monosp=
ace"><br>



</font></div><div><font face=3D"courier new, monospace">SparseDoubleMatrix =
A(10,10);</font></div><div><font face=3D"courier new, monospace">solver.com=
pute(A);</font></div></div></div><div><br></div><div>Compiler points to sol=
ver.compute(A) with error message:</div>



<div><font face=3D"courier new, monospace">class &quot;Eigen::BlockImpl&lt;=
const Eigen::SparseMatrix&lt;double, 0, int&gt;, -1, 1, 1, Eigen::Sparse&gt=
;&quot; has no member &quot;operator=3D&quot;</font></div><div><br></div><d=
iv>



Error persist for any OrderingType.</div><div><br></div><div>Interestingly,=
 error only shows for SparseQR. If I use SparseLU - everything compiles fin=
e.</div><div><br></div><div>Full template instantiation chain lead to error=
 is in attachment.</div>



<div><br></div><div>Would appreciate any help &amp; pointers how to solve t=
he problem.=A0</div><div><br></div><div>Thank you,</div><div>Pavel.</div><d=
iv><br></div><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>

--e89a8f642cb2a56ab904e3be15e6--



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/