[eigen] Tensor: Assert ( TensorRef< Tensor<Vector2d> > ) |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
When using TensorRef there is the following strange assert in debug
mode (release seems to work, without memory problems, address
sanitizer is shotted) Maybe this is a false positive because the following with matrices works: using S = Vector2d; using T = Matrix<S, Eigen::Dynamic, Eigen::Dynamic>; using TRef = Ref<T>; //using T = Tensor<S, 2>; //using TRef = TensorRef<T>; T t(3,3); t.resize(2,2); TRef ref(t); ref.coeffRef(1,1) = S(); ///< CRASH here Using the other typedefs for Tensor and TensorRef, raises the following assert: /usr/local/include/eigen3/Eigen/src/Core/PlainObjectBase.h:286: void Eigen::PlainObjectBase<Derived>::resize(Eigen::Index) [with Derived = Eigen::Matrix<double, 2, 1>; Eigen::Index = long int]: Assertion `((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0' failed. Somebody has any idea? Gabriel p.S: I use a static fixe size vector inside tensor because it is conceptually extremely handy in my use case ;-) Traceback: #0 0x7ffff65d5267 __GI_raise(sig=sig@entry=6) (../sysdeps/unix/sysv/linux/raise.c:55) #1 0x7ffff65d6eca __GI_abort() (abort.c:89) #2 ?? 0x00007ffff65ce03d in __assert_fail_base (fmt=0x7ffff6730028 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x40b860 "((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0", file=file@entry=0x40b7e0 "/home/zfmgpu/Desktop/Repository/eigenFork/Eigen/src/Core/PlainObjectBase.h", line=line@entry=286, function=function@entry=0x40ca80 <Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::resize(long)::__PRETTY_FUNCTION__> "void Eigen::PlainObjectBase<Derived>::resize(Eigen::Index) [with Derived = Eigen::Matrix<double, 2, 1>; Eigen::Index = long int]") (assert.c:92) #3 ?? 0x00007ffff65ce0f2 in __GI___assert_fail (assertion=0x40b860 "((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0", file=0x40b7e0 "/home/zfmgpu/Desktop/Repository/eigenFork/Eigen/src/Core/PlainObjectBase.h", line=286, function=0x40ca80 <Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::resize(long)::__PRETTY_FUNCTION__> "void Eigen::PlainObjectBase<Derived>::resize(Eigen::Index) [with Derived = Eigen::Matrix<double, 2, 1>; Eigen::Index = long int]") (assert.c:101) #4 0x40a4a8 Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::resize(this=0x60700000df80, size=0) (/home/zfmgpu/Desktop/Repository/eigenFork/Eigen/src/Core/PlainObjectBase.h:286) #5 0x40a325 Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::_init1<int>(long, Eigen::internal::enable_if<((((Eigen::DenseBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> >::{unnamed type#1})2)!=(1))||(!Eigen::internal::is_convertible<int, double>::value))&&((!((Eigen::internal::is_same<Eigen::MatrixXpr, Eigen::ArrayXpr>::{unnamed type#1})0))||((({unnamed type#1})2)==Eigen::Dynamic)), Eigen::internal::is_convertible>::type*)(this=0x60700000df80, size=0) (/home/zfmgpu/Desktop/Repository/eigenFork/Eigen/src/Core/PlainObjectBase.h:742) #6 0x409fb1 Eigen::Matrix<double, 2, 1, 0, 2, 1>::Matrix<int>(this=0x60700000df80, x=@0x7fffffffe074: 0) (/home/zfmgpu/Desktop/Repository/eigenFork/Eigen/src/Core/Matrix.h:296) #7 0x409c3b Eigen::internal::TensorLazyEvaluatorReadOnly<Eigen::DSizes<long, 2ul>, Eigen::Tensor<Eigen::Matrix<double, 2, 1, 0, 2, 1>, 2ul, 0, long>, Eigen::DefaultDevice>::TensorLazyEvaluatorReadOnly(this=0x60700000df40, expr=..., device=...) (/home/zfmgpu/Desktop/Repository/eigenFork/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h:48) #8 0x409781 Eigen::internal::TensorLazyEvaluatorWritable<Eigen::DSizes<long, 2ul>, Eigen::Tensor<Eigen::Matrix<double, 2, 1, 0, 2, 1>, 2ul, 0, long>, Eigen::DefaultDevice>::TensorLazyEvaluatorWritable(this=0x60700000df40, expr=..., device=...) (/home/zfmgpu/Desktop/Repository/eigenFork/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h:83) #9 0x409185 Eigen::internal::TensorLazyEvaluator<Eigen::DSizes<long, 2ul>, Eigen::Tensor<Eigen::Matrix<double, 2, 1, 0, 2, 1>, 2ul, 0, long>, Eigen::DefaultDevice>::TensorLazyEvaluator(this=0x60700000df40, expr=..., device=...) (/home/zfmgpu/Desktop/Repository/eigenFork/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h:103) #10 0x408d7b Eigen::TensorRef<Eigen::Tensor<Eigen::Matrix<double, 2, 1, 0, 2, 1>, 2ul, 0, long> >::TensorRef<Eigen::Tensor<Eigen::Matrix<double, 2, 1, 0, 2, 1>, 2ul, 0, long> >(this=0x7fffffffe170, expr=...) (/home/zfmgpu/Desktop/Repository/eigenFork/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h:148) #11 0x40840e eigenTensorTest() (/home/zfmgpu/Desktop/Repository/SimulationFramework/SourceCode/Projects/TestBench/Projects/EigenTest/include/EigenTensorTest.hpp:160) #12 0x40851c main() (/home/zfmgpu/Desktop/Repository/SimulationFramework/SourceCode/Projects/TestBench/Projects/EigenTest/src/main.cpp:14) |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |