459459<tr class="memitem:a4c445bb3c911493f437f119372da5221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_equality_constraint.html">LinearEqualityConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a4c445bb3c911493f437f119372da5221">AddLinearEqualityConstraint</a> (const <a class="el" href="classdrake_1_1symbolic_1_1_formula.html">symbolic::Formula</a> &f)</td></tr>
460460<tr class="memdesc:a4c445bb3c911493f437f119372da5221"><td class="mdescLeft"> </td><td class="mdescRight">Adds a linear equality constraint represented by a symbolic formula to the program. <a href="#a4c445bb3c911493f437f119372da5221">More...</a><br /></td></tr>
461461<tr class="separator:a4c445bb3c911493f437f119372da5221"><td class="memSeparator" colspan="2"> </td></tr>
462+ <tr class="memitem:a4484b29040459724524c285b49aa850e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_equality_constraint.html">LinearEqualityConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a4484b29040459724524c285b49aa850e">AddLinearEqualityConstraint</a> (const Eigen::Ref< const Eigen::Array< <a class="el" href="classdrake_1_1symbolic_1_1_formula.html">symbolic::Formula</a>, Eigen::Dynamic, Eigen::Dynamic >> &formulas)</td></tr>
463+ <tr class="memdesc:a4484b29040459724524c285b49aa850e"><td class="mdescLeft"> </td><td class="mdescRight">Adds a linear equality constraint represented by an Eigen::Array<symbolic::Formula> to the program. <a href="#a4484b29040459724524c285b49aa850e">More...</a><br /></td></tr>
464+ <tr class="separator:a4484b29040459724524c285b49aa850e"><td class="memSeparator" colspan="2"> </td></tr>
462465<tr class="memitem:a9164110d10cac0284a50a91b8308bae8"><td class="memTemplParams" colspan="2">template<typename DerivedV , typename DerivedB > </td></tr>
463466<tr class="memitem:a9164110d10cac0284a50a91b8308bae8"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if_t< <a class="el" href="structdrake_1_1is__eigen__vector__expression__double__pair.html">is_eigen_vector_expression_double_pair</a>< DerivedV, DerivedB >::value, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_equality_constraint.html">LinearEqualityConstraint</a> > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a9164110d10cac0284a50a91b8308bae8">AddLinearEqualityConstraint</a> (const Eigen::MatrixBase< DerivedV > &v, const Eigen::MatrixBase< DerivedB > &b)</td></tr>
464467<tr class="memdesc:a9164110d10cac0284a50a91b8308bae8"><td class="mdescLeft"> </td><td class="mdescRight">Adds linear equality constraints \( v = b \), where <code>v(i)</code> is a symbolic linear expression. <a href="#a9164110d10cac0284a50a91b8308bae8">More...</a><br /></td></tr>
@@ -3260,7 +3263,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a06dbd6c1bf0971fc28366df9
32603263</div>
32613264</div>
32623265<a id="ac623a8e305d300afa1d9f63bf3f266b8"></a>
3263- <h2 class="memtitle"><span class="permalink"><a href="#ac623a8e305d300afa1d9f63bf3f266b8">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[1/10 ]</span></h2>
3266+ <h2 class="memtitle"><span class="permalink"><a href="#ac623a8e305d300afa1d9f63bf3f266b8">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[1/11 ]</span></h2>
32643267
32653268<div class="memitem">
32663269<div class="memproto">
@@ -3308,7 +3311,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ac623a8e305d300afa1d9f63b
33083311</div>
33093312</div>
33103313<a id="a4c445bb3c911493f437f119372da5221"></a>
3311- <h2 class="memtitle"><span class="permalink"><a href="#a4c445bb3c911493f437f119372da5221">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[2/10 ]</span></h2>
3314+ <h2 class="memtitle"><span class="permalink"><a href="#a4c445bb3c911493f437f119372da5221">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[2/11 ]</span></h2>
33123315
33133316<div class="memitem">
33143317<div class="memproto">
@@ -3331,10 +3334,37 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4c445bb3c911493f437f1193
33313334<li><code>f</code> includes a non-linear expression. </li>
33323335</ol>
33333336
3337+ </div>
3338+ </div>
3339+ <a id="a4484b29040459724524c285b49aa850e"></a>
3340+ <h2 class="memtitle"><span class="permalink"><a href="#a4484b29040459724524c285b49aa850e">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[3/11]</span></h2>
3341+
3342+ <div class="memitem">
3343+ <div class="memproto">
3344+ <table class="memname">
3345+ <tr>
3346+ <td class="memname"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a><<a class="el" href="classdrake_1_1solvers_1_1_linear_equality_constraint.html">LinearEqualityConstraint</a>> AddLinearEqualityConstraint </td>
3347+ <td>(</td>
3348+ <td class="paramtype">const Eigen::Ref< const Eigen::Array< <a class="el" href="classdrake_1_1symbolic_1_1_formula.html">symbolic::Formula</a>, Eigen::Dynamic, Eigen::Dynamic >> & </td>
3349+ <td class="paramname"><em>formulas</em></td><td>)</td>
3350+ <td></td>
3351+ </tr>
3352+ </table>
3353+ </div><div class="memdoc">
3354+
3355+ <p>Adds a linear equality constraint represented by an Eigen::Array<symbolic::Formula> to the program. </p>
3356+ <p>A common use-case of this function is to add a linear constraint with the element-wise comparison between two Eigen matrices, using <code>A.array() == B.array()</code>. See the following example.</p>
3357+ <div class="fragment"><div class="line"><a class="code" href="classdrake_1_1solvers_1_1_mathematical_program.html#ac577d0f44c9c07256230cf2642ec6822">MathematicalProgram</a> prog;</div><div class="line">Eigen::Matrix<double, 2, 2> A;</div><div class="line"><span class="keyword">auto</span> <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a> = prog.NewContinuousVariables(2, <span class="stringliteral">"x"</span>);</div><div class="line"><a class="code" href="namespacedrake_1_1systems_1_1analysis_1_1test.html#a322dbcada3667894a629fe3f1a476f2a">Eigen::Vector2d</a> b;</div><div class="line">... <span class="comment">// set up A and b</span></div><div class="line">prog.AddLinearConstraint((A * <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>).array() == b.array());</div></div><!-- fragment --><p>It throws an exception if <a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#ade4bcd993d4cefb458564896160eebd2" title="Add a linear constraint represented by a symbolic formula to the program.">AddLinearConstraint(const symbolic::Formula& f)</a> throws an exception for f ∈ <code>formulas</code>. </p><dl class="tparams"><dt>Template Parameters</dt><dd>
3358+ <table class="tparams">
3359+ <tr><td class="paramname">Derived</td><td>An Eigen Array type of Formula. </td></tr>
3360+ </table>
3361+ </dd>
3362+ </dl>
3363+
33343364</div>
33353365</div>
33363366<a id="a9164110d10cac0284a50a91b8308bae8"></a>
3337- <h2 class="memtitle"><span class="permalink"><a href="#a9164110d10cac0284a50a91b8308bae8">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[3/10 ]</span></h2>
3367+ <h2 class="memtitle"><span class="permalink"><a href="#a9164110d10cac0284a50a91b8308bae8">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[4/11 ]</span></h2>
33383368
33393369<div class="memitem">
33403370<div class="memproto">
@@ -3389,7 +3419,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a9164110d10cac0284a50a91b
33893419</div>
33903420</div>
33913421<a id="a7c3361c9cd54767f6b0441f3343eec35"></a>
3392- <h2 class="memtitle"><span class="permalink"><a href="#a7c3361c9cd54767f6b0441f3343eec35">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[4/10 ]</span></h2>
3422+ <h2 class="memtitle"><span class="permalink"><a href="#a7c3361c9cd54767f6b0441f3343eec35">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[5/11 ]</span></h2>
33933423
33943424<div class="memitem">
33953425<div class="memproto">
@@ -3442,7 +3472,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7c3361c9cd54767f6b0441f3
34423472</div>
34433473</div>
34443474<a id="aa4aec5ef573ea5fb0667475c7e5a1914"></a>
3445- <h2 class="memtitle"><span class="permalink"><a href="#aa4aec5ef573ea5fb0667475c7e5a1914">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[5/10 ]</span></h2>
3475+ <h2 class="memtitle"><span class="permalink"><a href="#aa4aec5ef573ea5fb0667475c7e5a1914">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[6/11 ]</span></h2>
34463476
34473477<div class="memitem">
34483478<div class="memproto">
@@ -3485,7 +3515,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#aa4aec5ef573ea5fb0667475c
34853515</div>
34863516</div>
34873517<a id="a4d821626f8fac7852a19ee102a4b3c6d"></a>
3488- <h2 class="memtitle"><span class="permalink"><a href="#a4d821626f8fac7852a19ee102a4b3c6d">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[6/10 ]</span></h2>
3518+ <h2 class="memtitle"><span class="permalink"><a href="#a4d821626f8fac7852a19ee102a4b3c6d">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[7/11 ]</span></h2>
34893519
34903520<div class="memitem">
34913521<div class="memproto">
@@ -3522,7 +3552,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4d821626f8fac7852a19ee10
35223552</div>
35233553</div>
35243554<a id="a8874425f3b864d09e7a05f6ca2c97805"></a>
3525- <h2 class="memtitle"><span class="permalink"><a href="#a8874425f3b864d09e7a05f6ca2c97805">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[7/10 ]</span></h2>
3555+ <h2 class="memtitle"><span class="permalink"><a href="#a8874425f3b864d09e7a05f6ca2c97805">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[8/11 ]</span></h2>
35263556
35273557<div class="memitem">
35283558<div class="memproto">
@@ -3559,7 +3589,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8874425f3b864d09e7a05f6c
35593589</div>
35603590</div>
35613591<a id="af84919b89bf3c494ed3dd1b0913c3e5f"></a>
3562- <h2 class="memtitle"><span class="permalink"><a href="#af84919b89bf3c494ed3dd1b0913c3e5f">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[8/10 ]</span></h2>
3592+ <h2 class="memtitle"><span class="permalink"><a href="#af84919b89bf3c494ed3dd1b0913c3e5f">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[9/11 ]</span></h2>
35633593
35643594<div class="memitem">
35653595<div class="memproto">
@@ -3596,7 +3626,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#af84919b89bf3c494ed3dd1b0
35963626</div>
35973627</div>
35983628<a id="adba470b9c71439a795a0d647d171f71b"></a>
3599- <h2 class="memtitle"><span class="permalink"><a href="#adba470b9c71439a795a0d647d171f71b">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[9/10 ]</span></h2>
3629+ <h2 class="memtitle"><span class="permalink"><a href="#adba470b9c71439a795a0d647d171f71b">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[10/11 ]</span></h2>
36003630
36013631<div class="memitem">
36023632<div class="memproto">
@@ -3643,7 +3673,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#adba470b9c71439a795a0d647
36433673</div>
36443674</div>
36453675<a id="a7ca8d2a20e1ba47d1c658613569eb447"></a>
3646- <h2 class="memtitle"><span class="permalink"><a href="#a7ca8d2a20e1ba47d1c658613569eb447">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[10/10 ]</span></h2>
3676+ <h2 class="memtitle"><span class="permalink"><a href="#a7ca8d2a20e1ba47d1c658613569eb447">◆ </a></span>AddLinearEqualityConstraint() <span class="overload">[11/11 ]</span></h2>
36473677
36483678<div class="memitem">
36493679<div class="memproto">
0 commit comments