19 std::unique_ptr<Expression> arg) {
29 return std::make_unique<ConstructorDiagonalMatrix>(
pos,
type, std::move(arg));
42 return (col == row) ? this->
argument()->getConstantValue(0) : 0.0;
static std::unique_ptr< Expression > MakeConstantValueForVariable(Position pos, std::unique_ptr< Expression > expr)
static std::unique_ptr< Expression > Make(const Context &context, Position pos, const Type &type, std::unique_ptr< Expression > arg)
std::optional< double > getConstantValue(int n) const override
const Type & type() const
std::unique_ptr< Expression > & argument()
bool isAllowedInES2(const Context &context) const
virtual const Type & componentType() const
virtual bool isMatrix() const