public NumericalValue division(NumericalValue other) { assertAssignment(); // dynamic other_value = other.getValue(); Debugging.assert(other_value != 0, new AquilaExceptions.ZeroDivisionException($"{numeric_value} / {other_value}")); dynamic result_raw_value = numeric_value / other_value; bool result_is_const = is_const && other.isConst(); // source variables var source_variables = new Dictionary <string, NumericalValue>(); if (!string.IsNullOrEmpty(getName())) { source_variables.Add(getName(), this); } if (!string.IsNullOrEmpty(other.getName()) && other.getName() != getName()) { source_variables.Add(other.getName(), other); } source_variables = mergeDictionaries(source_variables, other.source_vars); // NumericalValue result = Activator.CreateInstance(_val_type, result_raw_value, result_is_const, source_variables) as NumericalValue; return(result); }
public NumericalValue mult(NumericalValue other) { assertAssignment(); // dynamic result_raw_value = numeric_value * other.getValue(); bool result_is_const = is_const && other.isConst(); // source variables var source_variables = new Dictionary <string, NumericalValue>(); if (!string.IsNullOrEmpty(getName())) { source_variables.Add(getName(), this); } if (!string.IsNullOrEmpty(other.getName()) && other.getName() != getName()) { source_variables.Add(other.getName(), other); } source_variables = mergeDictionaries(source_variables, other.source_vars); // NumericalValue result = Activator.CreateInstance(_val_type, result_raw_value, result_is_const, source_variables) as NumericalValue; return(result); }