28 int Store::writeTextInBuffer(
char * buffer,
int bufferSize,
int numberOfSignificantDigits)
const {
32 Expression * Store::shallowReduce(Context& context, AngleUnit angleUnit) {
33 context.setExpressionForSymbolName(value(), symbol(), context);
37 ExpressionLayout * Store::privateCreateLayout(
PrintFloat::Mode floatDisplayMode, ComplexFormat complexFormat)
const {
40 ExpressionLayout * childrenLayouts[3];
41 childrenLayouts[0] = value()->
createLayout(floatDisplayMode, complexFormat);
43 childrenLayouts[1] =
new StringLayout(stoSymbol, 1);
44 childrenLayouts[2] = symbol()->
createLayout(floatDisplayMode, complexFormat);
45 return new HorizontalLayout(childrenLayouts, 3);
49 Expression * Store::templatedApproximate(Context& context, AngleUnit angleUnit)
const {
50 context.setExpressionForSymbolName(value(), symbol(), context);
51 if (context.expressionForSymbol(symbol()) !=
nullptr) {
52 return context.expressionForSymbol(symbol())->approximate<
T>(context, angleUnit);
static int writeInfixExpressionTextInBuffer(const Expression *expression, char *buffer, int bufferSize, int numberOfDigits, const char *operatorName)
int polynomialDegree(char symbolName) const override
Expression * replaceWith(Expression *newOperand, bool deleteAfterReplace=true)
const Expression *const * operands() const override
Expression * editableOperand(int i)
Type type() const override
ExpressionLayout * createLayout(PrintFloat::Mode floatDisplayMode=PrintFloat::Mode::Default, ComplexFormat complexFormat=ComplexFormat::Default) const
static Complex< T > Float(T x)
Expression * clone() const override