We fixed a bug recently that should address this (
https://gitlab.com/libeigen/eigen/-/merge_requests/635).  The godbolt link
Jens provided does seem to compile on Trunk now.  I cherry-picked the
change to the 3.4 branch, so should go out with the next point release.

~Antonio

On Wed, Sep 8, 2021 at 8:39 AM Christoph Hertzberg <
[email protected]> wrote:

> You should probably change the type of the solver to either
>
>      Eigen::SelfAdjointEigenSolver<Eigen::Matrix<double,9,9> >
> or
>      Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd>
>
> Not sure, if we really want to support `Eigen::Matrix<double, -1, 9>`
> here. It would of course be possible, as this implicitly implies that
> the number of rows is 9 as well (otherwise, there is no Eigenvalue
> decomposition).
>
> Cheers,
> Christoph
>
> (sorry for the empty response before ...)
>
> On 08/09/2021 16.17, Alberto Luaces wrote:
> > Yes, sorry, that's exactly the error I mean.
> >
> > It seems that previously it was ok to build the solver from AᵀA, but not
> anymore.
> >
> > Thanks for deploying it in godbolt!
> >
> > On Wed, Sep 8, 2021, at 15:11, Jens Wehner wrote:
> >> Hi,
> >>
> >> what is the build error and which system/compiler/options?
> >>
> >> Is the build error like this?
> >> https://godbolt.org/z/KGTejxMdq
> >   <https://godbolt.org/z/KGTejxMdq>
> >> Compiler Explorer - C++ (x86-64 gcc (trunk)) <
> https://godbolt.org/z/KGTejxMdq>
> >> int main(){ using MatX9 = Eigen::Matrix<double, -1, 9>; MatX9
> epipolar_constraint(7, 9); epipolar_constraint.fill(0.0); //
> EncodeEpipolarEquation(x1, x2, &epipolar_constraint);
> Eigen::SelfAdjointEigenSolver<MatX9> solver
> (epipolar_constraint.transpose() * epipolar_constraint); return 0; }
> >> godbolt.org
> >>
> >>
> >> Escience Center Logo
> >>
> >> *Jens Wehner*
> >>
> >> Research Software Engineer
> >>
> >> +31 6 438 666 87
> >>
> >> Netherlands eScience Center
> >>
> >> *www.esciencecenter.nl*
> >>
> >>
> >>
> >> *From:* Alberto Luaces <[email protected]>
> >> *Sent:* Wednesday, September 8, 2021 14:12
> >> *To:* [email protected] <[email protected]>
> >> *Subject:* [eigen] Error when using tridiagonalization_inplace_selector
> >>
> >> Hi, I have found a build error in openmvg when using 3.4.0, shown with
> this snippet.  Do you think it is a bug in Eigen?
> >>
> >> Thanks!
> >>
> >> #include <Eigen/Dense>
> >>
> >> int main(){
> >>      using MatX9 = Eigen::Matrix<double, -1, 9>;
> >>      MatX9 epipolar_constraint(7, 9);
> >>      epipolar_constraint.fill(0.0);
> >>      // EncodeEpipolarEquation(x1, x2, &epipolar_constraint);
> >>      Eigen::SelfAdjointEigenSolver<MatX9> solver
> >>          (epipolar_constraint.transpose() * epipolar_constraint);
> >>      return 0;
> >> }
> >>
> >>
> >> --
> >>    Alberto
> >>
> >>
> >
> > --
> >    Alberto
> >
> >
>
>
>

Reply via email to