This forum has been archived. All content is frozen. Please use KDE Discuss instead.

/bigobj required for bdc SVD

Tags: None
(comma "," separated)
kballard
Registered Member
Posts
1
Karma
0

/bigobj required for bdc SVD

Wed Jul 08, 2020 4:36 pm
Hi,

I am using MSVC (VS 2019) and I am finding that the "/bigobj" flag is required for any source file that uses the divide and conquer singular value decomposition with row-major matrices (but not the case for column-major matrices). It is not intuitive to me why so many more sections are required for row-major matrices. Could there be an error or is this expected behavior?

Simplest example that illustrates the behavor:
Code: Select all
#include "Eigen/Eigen"

// Does not cause any error
//using Matrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>;
// Causes error C1128 - number of sections exceeded object file format limit : compile with / bigobj
using Matrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;

Matrix test()
{
    Matrix A;
    Matrix B;
    Matrix C;

    auto D = A * B.bdcSvd(Eigen::ComputeThinU | Eigen::ComputeThinV).solve(C);

    return D;
}


Thanks,
Keith Ballard


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]