Thanks a lot, Antonio!

On Fri, Jun 10, 2022, at 17:18, Antonio Sanchez wrote:
> It is a bool tensor, so cast<bool>() is a no-op (casts to a bool tensor 
> again).  You want to access the actual boolean value.  For an n-d tensor, you 
> do this via
> tensor(idx1, ..., idxn).  For a 0-d (constant) tensor, that ends up just 
> being tensor().
> 
> https://godbolt.org/z/zvxfx9Wff
> 
> On Fri, Jun 10, 2022 at 8:11 AM Alberto Luaces <[email protected]> 
> wrote:
>> __
>> That's very informative, thanks!
>> 
>> I realize that the std::cout call is working because Eigen::Tensor 
>> implements output routines to streams, and that is why your example works.
>> 
>> However, my aim was to use that expression into a BOOST_TEST condition, and 
>> I'm unable to extract the bool value from it, even using 
>> Eigen::Tensor::cast<bool>:
>> 
>> https://godbolt.org/z/fjdh9Y4e3
>> 
>> On Fri, Jun 10, 2022, at 16:58, Antonio Sanchez wrote:
>>> The `Eigen::Tensor<bool, 0>` should have worked.
>>> 
>>> https://godbolt.org/z/zs9hMrne1
>>> 
>>> On Fri, Jun 10, 2022 at 4:40 AM Alberto Luaces <[email protected]> 
>>> wrote:
>>>> Hello, I'm having problems trying to find if some condition is failing for 
>>>> any of the elements of a tensor:
>>>> 
>>>> Eigen::Tensor<double, 5> errors(21, 21, 21, 21, 21);
>>>> 
>>>> ...
>>>> 
>>>> // This does not work
>>>> bool allTestsPassed = (errors < tolerance).all();
>>>> 
>>>> I have tried 
>>>> 
>>>> Eigen::Tensor<bool, 0> allTestsPassed;
>>>> 
>>>>  and 
>>>> 
>>>> Eigen::Tensor<bool, 1> allTestsPassed(1);
>>>> 
>>>> but I cannot get the result, either because there are compilation errors 
>>>> or either I have runtime size mismatches when assigning the value of 
>>>> allTestsPassed variable.
>>>> 
>>>> Thanks.
>>>> 
>>>> -- 
>>>>   Alberto
>>>> 
>>>> 
>> 
>> --
>>   Alberto
>> 
>> 

--
  Alberto

Reply via email to