16 ExpressionLayout * Sequence::privateCreateLayout(
PrintFloat::Mode floatDisplayMode, ComplexFormat complexFormat)
const {
19 ExpressionLayout * childrenLayouts[2];
20 childrenLayouts[0] =
new StringLayout(
"n=", 2);
22 return createSequenceLayoutWithArgumentLayouts(
new HorizontalLayout(childrenLayouts, 2),
operand(2)->
createLayout(floatDisplayMode, complexFormat),
operand(0)->
createLayout(floatDisplayMode, complexFormat));
26 Expression * Sequence::templatedApproximate(Context& context, AngleUnit angleUnit)
const {
30 T end = bInput->type() ==
Type::Complex ?
static_cast<Complex<T> *
>(bInput)->toScalar() :
NAN;
36 VariableContext<T> nContext = VariableContext<T>(
'n', &context);
39 for (
int i = (
int)
start; i <= (int)end; i++) {
45 nContext.setExpressionForSymbolName(&iExpression, &nSymbol, nContext);
47 Expression * newResult = evaluateWithNextTerm(
T(), result, expression);
static bool shouldStopProcessing()
Expression * approximate(Context &context, AngleUnit angleUnit=AngleUnit::Default) const
static constexpr int k_maxNumberOfSteps
ExpressionLayout * createLayout(PrintFloat::Mode floatDisplayMode=PrintFloat::Mode::Default, ComplexFormat complexFormat=ComplexFormat::Default) const
static Complex< T > Float(T x)
const Expression * operand(int i) const