Drake
random_polynomial_matrix.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace drake {
6 namespace test {
7 
8 /// Obtains a matrix of random unvariate Polynomials of the specified size.
9 template <typename CoefficientType = double>
10 static Eigen::Matrix<Polynomial<CoefficientType>,
11  Eigen::Dynamic, Eigen::Dynamic>
12 RandomPolynomialMatrix(Eigen::Index num_coefficients_per_polynomial,
13  Eigen::Index rows, Eigen::Index cols) {
14  Eigen::Matrix<Polynomial<CoefficientType>, Eigen::Dynamic, Eigen::Dynamic>
15  mat(rows, cols);
16  for (Eigen::Index row = 0; row < mat.rows(); ++row) {
17  for (Eigen::Index col = 0; col < mat.cols(); ++col) {
18  auto coeffs =
19  (Eigen::Matrix<CoefficientType, Eigen::Dynamic, 1>::Random(
20  num_coefficients_per_polynomial)).eval();
21  mat(row, col) = Polynomial<CoefficientType>(coeffs);
22  }
23  }
24  return mat;
25 }
26 
27 } // namespace test
28 } // namespace drake
Definition: automotive_demo.cc:88
static Eigen::Matrix< Polynomial< CoefficientType >, Eigen::Dynamic, Eigen::Dynamic > RandomPolynomialMatrix(Eigen::Index num_coefficients_per_polynomial, Eigen::Index rows, Eigen::Index cols)
Obtains a matrix of random unvariate Polynomials of the specified size.
Definition: random_polynomial_matrix.h:12
AutoDiffXd eval(const Eigen::AutoDiffScalar< Derived > &x)
Force Eigen to evaluate an autodiff expression.
Definition: pydrake_autodiffutils.cc:22