inline ::Eigen::Map<const ::Eigen::VectorXd, ::Eigen::Unaligned, ::Eigen::InnerStride<::Eigen::Dynamic>> EigenMap(const VectorView &view) { return ::Eigen::Map<const ::Eigen::VectorXd, ::Eigen::Unaligned, ::Eigen::InnerStride<::Eigen::Dynamic>>( view.data(), view.size(), ::Eigen::InnerStride<::Eigen::Dynamic>(view.stride())); }
void VectorView::set_to_product(const MatrixView& m, const VectorView& v, const bool transpose) { CBLAS_TRANSPOSE tr; if (transpose){ tr = CblasTrans; assert(m.cols() == length()); assert(m.rows() == v.length()); } else { tr = CblasNoTrans; assert(m.cols() == v.length()); assert(m.rows() == length()); } cblas_dgemv(CblasColMajor, tr, m.rows(), m.cols(), 1.0, m.data(), m.stride(), v.data(), 1, 0.0, data_, 1); }
Vector(const VectorView &v) : VectorView(NULL, v.length_mem(), v.length()) { init(); for (size_t i = 0; i < length_; ++i) data_[i] = v.data()[i]; }