[ 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"><<a =
href=3D"mailto:gael.guennebaud@xxxxxxxxx" target=3D"_blank">gael.guennebaud=
@gmail.com</a>></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't und=
erstand this issue as the base class=A0<span style=3D"font-family:'cour=
ier new',monospace;font-size:13px">"Eigen::BlockImpl<const Eige=
n::SparseMatrix<double, 0, int>, -1, 1, 1, Eigen::Sparse>"=A0=
</span>does has an operator=3D line 194 in src/SparseCore/SparseBlock.h. So=
I'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"><<a href=3D"mailto:pavel@xxxxxxxxxxxxxxx" target=3D"_blank">=
pavel@xxxxxxxxxxxxxxx</a>></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< double > SparseDoubleMatrix;</font></div>
<div><font face=3D"courier new, monospace"><br></font></div><div><font face=
=3D"courier new, monospace">SparseQR< SparseDoubleMatrix, COLAMDOrdering=
<int> > 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 "Eigen::BlockImpl<=
const Eigen::SparseMatrix<double, 0, int>, -1, 1, 1, Eigen::Sparse>=
;" has no member "operator=3D"</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 & 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--