<commit_before>#pragma once

#include <string>

#include <Eigen/StdVector>
#include <Eigen/Dense>

#include "drake/solvers/decision_variable.h"
#include "drake/solvers/solution_result.h"
#include "drake/systems/plants/ConstraintWrappers.h"

class RigidBodyTree;
class RigidBodyConstraint;
class IKoptions;

namespace drake {
namespace solvers {
class OptimizationProblem;
}
}

namespace drake {
namespace systems {
namespace plants {

// TODO(sam.creasey) The infeasible_constraint return argument is
// currently not functional because OptimizationProblem has no support
// for determining which constraints were infeasible.  Once this is
// fixed, we should restore functionality here.

/// This function is primarily documented through RigidBodyIK.h.  All
/// parameters are passthroughs from there.
template <typename DerivedA, typename DerivedB, typename DerivedC>
void inverseKinBackend(RigidBodyTree *model, const int nT,
                       const double *t,
                       const Eigen::MatrixBase<DerivedA>& q_seed,
                       const Eigen::MatrixBase<DerivedB>& q_nom,
                       int num_constraints,
                       RigidBodyConstraint **const constraint_array,
                       const IKoptions& ikoptions,
                       Eigen::MatrixBase<DerivedC>* q_sol, int *info,
                       std::vector<std::string>* infeasible_constraint);

/// This function is primarily documented through RigidBodyIK.h.  All
/// parameters are passthroughs from inverseKinTraj().
template <typename DerivedA, typename DerivedB, typename DerivedC,
          typename DerivedD, typename DerivedE>
void inverseKinTrajBackend(
    RigidBodyTree *model, const int nT,
    const double *t,<commit_msg>Extend doxygen comment to include TODO.<commit_after>#pragma once

#include <string>

#include <Eigen/StdVector>
#include <Eigen/Dense>

#include "drake/solvers/decision_variable.h"
#include "drake/solvers/solution_result.h"
#include "drake/systems/plants/ConstraintWrappers.h"

class RigidBodyTree;
class RigidBodyConstraint;
class IKoptions;

namespace drake {
namespace solvers {
class OptimizationProblem;
}
}

namespace drake {
namespace systems {
namespace plants {

// TODO(sam.creasey) The infeasible_constraint return argument is
// currently not functional because OptimizationProblem has no support
// for determining which constraints were infeasible.  Once this is
// fixed, we should restore functionality here.

/// This function is primarily documented through RigidBodyIK.h.  All
/// parameters are passthroughs from there.  The infeasible_constraint
/// parameter is currently always empty untitl OptimizationProblem
/// supports determining which constraints were infeasible.
template <typename DerivedA, typename DerivedB, typename DerivedC>
void inverseKinBackend(RigidBodyTree *model, const int nT,
                       const double *t,
                       const Eigen::MatrixBase<DerivedA>& q_seed,
                       const Eigen::MatrixBase<DerivedB>& q_nom,
                       int num_constraints,
                       RigidBodyConstraint **const constraint_array,
                       const IKoptions& ikoptions,
                       Eigen::MatrixBase<DerivedC>* q_sol, int *info,
                       std::vector<std::string>* infeasible_constraint);

/// This function is primarily documented through RigidBodyIK.h.  All
/// parameters are passthroughs from inverseKinTraj().  The
/// infeasible_constraint parameter is currently always empty untitl
/// OptimizationProblem supports determining which constraints were
/// infeasible.
template <typename DerivedA, typename DerivedB, typename DerivedC,
          typename DerivedD, typename DerivedE>
void inverseKinTrajBackend(
    RigidBodyTree *model, const int nT,
    const double *t,
{'fraction_non_alphanumeric': 0.07563901930099114, 'fraction_numerical': 0.0, 'mean_word_length': 3.323562570462232, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5512941', 'n_tokens_mistral': 1086, 'n_tokens_neox': 1011, 'n_words': 322}