/** * Copyright (c) 2020 by Contributors * @file array/cpu/array_nonzero.cc * @brief Array nonzero CPU implementation */ #include namespace dgl { using runtime::NDArray; namespace aten { namespace impl { template IdArray NonZero(IdArray array) { std::vector ret; const IdType* data = array.Ptr(); for (int64_t i = 0; i < array->shape[0]; ++i) if (data[i] != 0) ret.push_back(i); return NDArray::FromVector(ret, array->ctx); } template IdArray NonZero(IdArray); template IdArray NonZero(IdArray); } // namespace impl } // namespace aten } // namespace dgl