Thanks for the .constant() workaround! I've opened a bug.
Toby On 05/11/2019, 13:45, "Christoph Hertzberg" <[email protected]> wrote: Your code works fine with `Eigen::ArrayXXf` instead of `Eigen::Tensor<float,2>`, so making this work for Tensor as well would not be a bad idea. Feel free to open a bug for that. As a workaround, you can write: ft_result = (ft_A < 0.5f).select(ft_A, ft_A.constant(0.0f)); This is also inconsistent with the Array-API, where you would need to write (instead of `ft_A.constant(0.0f)`): ArrayXXf::Constant(0.0f, ft_A.rows(), ft_A.cols()); Cheers, Christoph On 05/11/2019 12.12, Wood, Tobias wrote: > Hello, > > The following simplified program does not compile with Eigen HEAD: > > #include <unsupported/Eigen/CXX11/Tensor> > > int main(const int argc, const char *const argv[]) > { > Eigen::Tensor<float, 2> ft_A(2, 4), ft_B(2, 4), ft_result(2, 4); > ft_A.setRandom(); > ft_B.setZero(); > ft_result = (ft_A < 0.5f).select(ft_A, ft_B); > ft_result = (ft_A < 0.5f).select(ft_A, 0.f); > } > > The first call to ft_result compiles fine, but the second does not. The first line of compile errors is: > > Eigen/src/Core/util/ForwardDeclarations.h:23:47: error: implicit instantiation of undefined template 'Eigen::internal::traits<float> > > So it looks to me like Eigen tries to treat the 0.f as an Eigen tensor, rather than as the scalar type. > > Does this count as a bug and if so should I open a bug on the tracker? I looked at trying to fix it myself but sadly this kind of Eigen issue is out of my league. > > Best wishes, > Toby > -- Dr.-Ing. Christoph Hertzberg Besuchsadresse der Nebengeschäftsstelle: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 5 28359 Bremen, Germany Postadresse der Hauptgeschäftsstelle Standort Bremen: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 1 28359 Bremen, Germany Tel.: +49 421 178 45-4021 Zentrale: +49 421 178 45-0 E-Mail: [email protected] Weitere Informationen: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.dfki.de%2Frobotik&data=01%7C01%7Ctobias.wood%40kcl.ac.uk%7C7683ce1039fa46a4754608d761f66efe%7C8370cf1416f34c16b83c724071654356%7C0&sdata=XMwSgtNr08DydJTQCWQQh94yxKoTrQ6Rp2%2FZoNgL0NI%3D&reserved=0 ------------------------------------------------------------- Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Trippstadter Strasse 122, D-67663 Kaiserslautern, Germany Geschäftsführung: Prof. Dr. Jana Koehler (Vorsitzende) Dr. Walter Olthoff Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes Amtsgericht Kaiserslautern, HRB 2313 -------------------------------------------------------------
