public void SetValue(TrajectoryQuantityInstance q, MatlabExpression value) { var idx = q.GlobalIndex; Debug.Assert(idx >= 0 && idx < Values.Length); Values[idx] = value; }
/// <summary> /// Add a multi-dimensional equality constraint gradient /// </summary> protected void AddEConstraintGrad(Constraint ci, TrajectoryQuantityInstance q, MatlabExpression expr) { if (expr.ToString() == "- 1*1") { Console.WriteLine("{0}, {1}: {2}", ci.Index, q, expr); } AddConstraintGrad(EConstraintsNLGradCode, q, ci, expr); //if (ci.NDims > 1) }
public void SetValue(TrajectoryQuantityInstance q, MatlabExpression value) { var idx = q.GlobalIndex; if (idx >= 0 && idx < Values.Length) { Values[idx] = value; } // Silently ignore invalid values }
public void SetValue(TrajectoryQuantityInstance q, params object[] exprs) { Debug.Assert(q.Quantity.Length == exprs.Count()); var idx = q.GlobalIndex; if (idx >= 0 && idx < Values.Length) { Values[idx] = M.ColVector(exprs); } // Silently ignore invalid values }
protected void AddCostGrad(TrajectoryQuantityInstance q, MatlabExpression expr) { var idx = q.GlobalIndex; if (idx >= 0 && idx < JGradCode.Length) { var list = JGradCode[idx]; if (list == null) { JGradCode[idx] = list = new List <MatlabExpression>(5); } list.Add(expr); } // for now: Silently ignore invalid gradients (such as those from the boundaries) }
public QInstanceIndex(Constraint ci, TrajectoryQuantityInstance q) { Constraint = ci; Q = q; }
/// <summary> /// Add a constraint gradient /// </summary> private void AddConstraintGrad(SparseMatlabTensor <QInstanceIndex> constraintGrad, TrajectoryQuantityInstance q, Constraint ci, MatlabExpression expr) { constraintGrad.Add(new QInstanceIndex(ci, q), expr); }
/// <summary> /// Add an equality constraint gradient /// </summary> protected void AddIConstraintGrad(Constraint ci, TrajectoryQuantityInstance q, MatlabExpression expr) { AddConstraintGrad(IConstraintsNLGradCode, q, ci, expr); }