Hi, In the file CwiseNullaryOp.h the functions DenseBase<Derived>::Zero call function DenseBase<Derived>::Constant which uses Scalar(0) for zero-initialization. It gives compilation error for this line using Mat = Eigen::Matrix<std::complex<ceres::Jet<double, 3>>, -1, 1, 0, -1, 1>; Mat x = Mat::Zero(10); Here ceres::Jet<double, 3> is autodif type in ceres-solver. The problem is that it is not always possible to make conversion from int. From the other side for non-class-type scalar values, Scalar() provides a temporary which is zero-initialized. It is likely that for custom numerical class types Scalar() provides zero-initialized temporary. This is the case for Jet. When I replaced
return Constant(size, Scalar(0)); with return Constant(size, Scalar()); in all Zero and setZero functions, code was compiled without errors. Best, Oleg
