# fronts.D.from_expr

fronts.D.from_expr(expr, vectorized=True, max_derivatives=2)

Create a D function from a SymPy-compatible expression.

Parameters
• expr (sympy.Expression or str or float) – SymPy-compatible expression containing up to one free symbol.

• vectorized (bool, optional) –

Whether the returned D must be compatible with a solver that uses vectorized calls.

If True (default), the first argument passed to D may always be either a float or a NumPy array. However, if False, calls as D(theta, 1) or D(theta, 2) will assume that theta is a single float, which may allow for optimizations that speed up the evaluations required by a solver that does not use vectorized calls.

Note that, regardless of this setting, calls to D that do not ask for any derivatives (i.e., calls as D(theta)) will always take floats and arrays interchangeably. This behavior ensures that D is always compatible with the solution classes.

• max_derivatives (int, optional) – Highest-order derivative of D that may be required. Can be 0, 1 or 2. The default is 2.

Returns

D

Function to evaluate $$D$$ and its derivatives:

• D(theta) evaluates and returns $$D$$ at theta

• If max_derivatives >= 1, D(theta, 1) returns both the value of $$D$$ and its first derivative at theta

• If max_derivatives is 2, D(theta, 2) returns the value of $$D$$, its first derivative, and its second derivative at theta

If vectorized is True, the argument theta may be a single float or a NumPy array in all cases. If vectorized is False, theta may be either a float or an array when D is called as D(theta), but it must be a float otherwise.

Return type

callable

Notes

Users will rarely need to call this function, as all built-in solver functions already do so themselves when they receive an expression as D.