text: #include "_linalg.h"
  
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::MatrixQReturnType  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_745ddcd3de94556f95831952528e5605)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::matrixQ;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::MatrixType const & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_f72e05b2c1b65993b8aecd4600bb8cc4)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::matrixQR;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::PermutationType const & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_3613c88d06f55ddeb56dbc656b9f8712)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::colsPermutation;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::IntDiagSizeVectorType const & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_6c07bedcf4da50e483a993cf4d4eb75f)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::rowsTranspositions;
  double  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_306539b941e452b992163682421bb340)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::absDeterminant;
  double  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_616ede2107dc5489a9435594f22a2915)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::logAbsDeterminant;
  ::Eigen::Index  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_2040c23afb2f53d9813df25ade80afce)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::rank;
  ::Eigen::Index  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_bb6a9e8d72395f66989dac63ab72d72c)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::dimensionOfKernel;
  bool  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_67aed84c5bb15ed983c885acfede5420)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::isInjective;
  bool  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_5f292b95b96e533bbbee79acc428aa2e)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::isSurjective;
  bool  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_b0059eb4e9165e898cd0666ef77b3695)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::isInvertible;
  class ::Eigen::Inverse< class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > > const (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_6285d9a87c0d55ae92aeee6dcf97b54f)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::inverse;
  ::Eigen::Index  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_e82be33999d75be9b3726c781f383377)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::rows;
  ::Eigen::Index  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_339be91280185321a0618400755addf1)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::cols;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::HCoeffsType const & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_ebb5c93cc79452ba857e6693cb36ac06)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::hCoeffs;
  class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_62353c8512025c09a0d54a926ce8a092)(::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::RealScalar const &)= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::setThreshold;
  class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_3e536eb4aaff529db962b38d21098547)(enum ::Eigen::Default_t )= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::setThreshold;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::RealScalar  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_51d7a912bfe655109eb2dce7edc4bd9f)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::threshold;
  ::Eigen::Index  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_dd6ef9388d0e55e4aca432adacd290b3)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::nonzeroPivots;
  ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::RealScalar  (::Eigen::FullPivHouseholderQR< ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::*method_pointer_d90943c047c353c38011049aa88a0eba)()const= &::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::maxPivot;
  
  namespace autowig {
      void method_decorator_62353c8512025c09a0d54a926ce8a092(class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & instance, ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >::RealScalar const & param_in_0, const class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & param_out) { instance.setThreshold(param_in_0) = param_out; }
      void method_decorator_3e536eb4aaff529db962b38d21098547(class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & instance, enum ::Eigen::Default_t  param_in_0, const class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > & param_out) { instance.setThreshold(param_in_0) = param_out; }
  }
  
  void wrapper_1a2a88b1ab9057fbbdb3e368e51ab77d(pybind11::module& module)
  {
  
      pybind11::class_<class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >, autowig::HolderType< class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > >::Type > class_1a2a88b1ab9057fbbdb3e368e51ab77d(module, "_FullPivHouseholderQR_1a2a88b1ab9057fbbdb3e368e51ab77d", "");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def(pybind11::init<  >());
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def(pybind11::init< ::Eigen::Index , ::Eigen::Index  >());
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def(pybind11::init< class ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > > const & >());
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("matrix_q", method_pointer_745ddcd3de94556f95831952528e5605, ":Returns:\n    Expression object representing the matrix Q\n\n:Return Type:\n    :cpp:any:`::Eigen::internal::FullPivHouseholderQRMatrixQReturnType<`\n    class ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("matrix_qr", method_pointer_f72e05b2c1b65993b8aecd4600bb8cc4, pybind11::return_value_policy::copy, ":Returns:\n    a reference to the matrix where the Householder QR decomposition is\n    stored\n\n:Return Type:\n    :cpp:any:`::Eigen::Matrix<` double, -1, -1, 0, -1, -1 >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("cols_permutation", method_pointer_3613c88d06f55ddeb56dbc656b9f8712, pybind11::return_value_policy::copy, ":Returns:\n    a const reference to the column permutation matrix\n\n:Return Type:\n    :cpp:any:`::Eigen::PermutationMatrix<` -1, -1, int >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("rows_transpositions", method_pointer_6c07bedcf4da50e483a993cf4d4eb75f, pybind11::return_value_policy::copy, ":Returns:\n    a const reference to the vector of indices representing the rows\n    transpositions\n\n:Return Type:\n    :cpp:any:`::Eigen::Matrix<` long int, 1, -1, 1, 1, -1 >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("abs_determinant", method_pointer_306539b941e452b992163682421bb340, ":Returns:\n    the absolute value of the determinant of the matrix of which this is the\n    QR decomposition. It has only linear complexity (that is, O(n) where n\n    is the dimension of the square matrix) as the QR decomposition has\n    already been computed.\n\n:Return Type:\n    :cpp:any:`double`\n\n.. note::\n\n    This is only for square matrices.\n\n.. warning::\n\n    a determinant can be very big or small, so for matrices of large enough\n    dimension, there is a risk of overflow/underflow. One way to work around\n    that is to use logAbsDeterminant() instead.\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("log_abs_determinant", method_pointer_616ede2107dc5489a9435594f22a2915, ":Returns:\n    the natural log of the absolute value of the determinant of the matrix\n    of which this is the QR decomposition. It has only linear complexity\n    (that is, O(n) where n is the dimension of the square matrix) as the QR\n    decomposition has already been computed.\n\n:Return Type:\n    :cpp:any:`double`\n\n.. note::\n\n    This is only for square matrices.\n\n.. note::\n\n    This method is useful to work around the risk of overflow/underflow\n    that’s inherent to determinant computation.\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("rank", method_pointer_2040c23afb2f53d9813df25ade80afce, ":Returns:\n    the rank of the matrix of which \\*this is the QR decomposition.\n\n:Return Type:\n    :cpp:any:`long` int\n\n.. note::\n\n    This method has to determine which pivots should be considered nonzero.\n    For that, it uses the threshold value that you can control by calling\n    setThreshold(const RealScalar&).\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("dimension_of_kernel", method_pointer_bb6a9e8d72395f66989dac63ab72d72c, ":Returns:\n    the dimension of the kernel of the matrix of which \\*this is the QR\n    decomposition.\n\n:Return Type:\n    :cpp:any:`long` int\n\n.. note::\n\n    This method has to determine which pivots should be considered nonzero.\n    For that, it uses the threshold value that you can control by calling\n    setThreshold(const RealScalar&).\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("is_injective", method_pointer_67aed84c5bb15ed983c885acfede5420, ":Returns:\n    true if the matrix of which \\*this is the QR decomposition represents an\n    injective linear map, i.e. has trivial kernel; false otherwise.\n\n:Return Type:\n    :cpp:any:`bool`\n\n.. note::\n\n    This method has to determine which pivots should be considered nonzero.\n    For that, it uses the threshold value that you can control by calling\n    setThreshold(const RealScalar&).\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("is_surjective", method_pointer_5f292b95b96e533bbbee79acc428aa2e, ":Returns:\n    true if the matrix of which \\*this is the QR decomposition represents a\n    surjective linear map; false otherwise.\n\n:Return Type:\n    :cpp:any:`bool`\n\n.. note::\n\n    This method has to determine which pivots should be considered nonzero.\n    For that, it uses the threshold value that you can control by calling\n    setThreshold(const RealScalar&).\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("is_invertible", method_pointer_b0059eb4e9165e898cd0666ef77b3695, ":Returns:\n    true if the matrix of which \\*this is the QR decomposition is\n    invertible.\n\n:Return Type:\n    :cpp:any:`bool`\n\n.. note::\n\n    This method has to determine which pivots should be considered nonzero.\n    For that, it uses the threshold value that you can control by calling\n    setThreshold(const RealScalar&).\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("inverse", method_pointer_6285d9a87c0d55ae92aeee6dcf97b54f, ":Returns:\n    the inverse of the matrix of which \\*this is the QR decomposition.\n\n:Return Type:\n    :cpp:any:`::Eigen::Inverse<` class\n    ::Eigen::FullPivHouseholderQR< class ::Eigen::Matrix< double, -1, -1, 0,\n    -1, -1 > > >\n\n.. note::\n\n    If this matrix is not invertible, the returned matrix has undefined\n    coefficients. Use isInvertible() to first determine whether this matrix\n    is invertible.\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("rows", method_pointer_e82be33999d75be9b3726c781f383377, "");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("cols", method_pointer_339be91280185321a0618400755addf1, "");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("h_coeffs", method_pointer_ebb5c93cc79452ba857e6693cb36ac06, pybind11::return_value_policy::copy, ":Returns:\n    a const reference to the vector of Householder coefficients used to\n    represent the factor :raw-latex:`\\c Q`.\n    \n    For advanced uses only.\n\n:Return Type:\n    :cpp:any:`::Eigen::Matrix<` double, -1, 1, 0, -1, 1 >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("set_threshold", method_pointer_62353c8512025c09a0d54a926ce8a092, pybind11::return_value_policy::reference_internal, ":Parameter:\n    `threshold` (:cpp:any:`double`) - The new value to use as the threshold.\n                                      \n                                      A pivot will be considered nonzero if its absolute value is strictly\n                                      greater than $ :raw-latex:`\\vert `pivot\n                                      :raw-latex:`\\vert `:raw-latex:`\\leqslant `threshold\n                                      :raw-latex:`\\times `:raw-latex:`\\vert `maxpivot :raw-latex:`\\vert `$\n                                      where maxpivot is the biggest pivot.\n                                      \n                                      If you want to come back to the default behavior, call\n                                      setThreshold(Default_t)\n\n:Return Type:\n    :cpp:any:`::Eigen::FullPivHouseholderQR<` class\n    ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("set_threshold", autowig::method_decorator_62353c8512025c09a0d54a926ce8a092);
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("set_threshold", method_pointer_3e536eb4aaff529db962b38d21098547, pybind11::return_value_policy::reference_internal, ":Parameter:\n    `` (:cpp:enumerator:`::Eigen::Default_t`) - Undocumented\n\n:Return Type:\n    :cpp:any:`::Eigen::FullPivHouseholderQR<` class\n    ::Eigen::Matrix< double, -1, -1, 0, -1, -1 > >\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("set_threshold", autowig::method_decorator_3e536eb4aaff529db962b38d21098547);
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("threshold", method_pointer_51d7a912bfe655109eb2dce7edc4bd9f, ":Return Type:\n    :cpp:any:`double`\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("nonzero_pivots", method_pointer_dd6ef9388d0e55e4aca432adacd290b3, ":Returns:\n    the number of nonzero pivots in the QR decomposition. Here nonzero is\n    meant in the exact sense, not in a fuzzy sense. So that notion isn’t\n    really intrinsically interesting, but it is still useful when\n    implementing algorithms.\n\n:Return Type:\n    :cpp:any:`long` int\n\n");
      class_1a2a88b1ab9057fbbdb3e368e51ab77d.def("max_pivot", method_pointer_d90943c047c353c38011049aa88a0eba, ":Returns:\n    the absolute value of the biggest pivot, i.e. the biggest diagonal\n    coefficient of U.\n\n:Return Type:\n    :cpp:any:`double`\n\n");
  
  }