private EF_Variable variableMaker(char c, dynamic value, EquationType type, dynamic maxValue, dynamic minValue) { dynamic coeff = valueMaker(type, maxValue, minValue); dynamic power = valueMaker(type, maxValue, minValue); VariableType varType; if (type == EquationType.Int) { varType = VariableType.Int; } else { varType = VariableType.Double; } EF_Variable vari = new EF_Variable(c, value, coeff, power, varType); return(vari); }
public Tuple <EF_Equation, EF_Equation> MakeChildren(EF_Equation parent1, EF_Equation parent2) { VariableType varType; if (parent1.EquationType == EquationType.Int) { varType = VariableType.Int; } else { varType = VariableType.Double; } EquationType parent1Copy_eq = new EquationType(); EquationType parent2Copy_eq = new EquationType(); if (parent1.EquationType.Equals(EquationType.Double)) { parent1Copy_eq = EquationType.Double; parent2Copy_eq = EquationType.Double; } else { parent1Copy_eq = EquationType.Int; parent2Copy_eq = EquationType.Int; } List <EF_Variable> parent1Copy_variables = new List <EF_Variable>(); List <EF_Variable> parent2Copy_variables = new List <EF_Variable>(); foreach (EF_Variable variable in parent1.Variables) { char symbol = variable.Symbol; dynamic value = variable.Value; dynamic coeff = variable.CoEfficient; dynamic power = variable.Power; EF_Variable newVariable = new EF_Variable(symbol, value, coeff, power, varType); parent1Copy_variables.Add(newVariable); } foreach (EF_Variable variable in parent2.Variables) { char symbol = variable.Symbol; dynamic value = variable.Value; dynamic coeff = variable.CoEfficient; dynamic power = variable.Power; EF_Variable newVariable = new EF_Variable(symbol, value, coeff, power, varType); parent2Copy_variables.Add(newVariable); } List <EF_Operator> parent1Copy_operators = new List <EF_Operator>(); List <EF_Operator> parent2Copy_operators = new List <EF_Operator>(); foreach (EF_Operator oper in parent1.Operators) { EF_Operand op = new EF_Operand(); if (oper.Operator == EF_Operand.Add) { op = EF_Operand.Add; } else if (oper.Operator == EF_Operand.Subtract) { op = EF_Operand.Subtract; } else if (oper.Operator == EF_Operand.Multiply) { op = EF_Operand.Multiply; } else { op = EF_Operand.Divide; } EF_Operator opera = new EF_Operator(op); parent1Copy_operators.Add(oper); } foreach (EF_Operator oper in parent2.Operators) { EF_Operand op = new EF_Operand(); if (oper.Operator == EF_Operand.Add) { op = EF_Operand.Add; } else if (oper.Operator == EF_Operand.Subtract) { op = EF_Operand.Subtract; } else if (oper.Operator == EF_Operand.Multiply) { op = EF_Operand.Multiply; } else { op = EF_Operand.Divide; } EF_Operator opera = new EF_Operator(op); parent2Copy_operators.Add(oper); } EF_Equation child1 = new EF_Equation(parent1Copy_eq, parent2Copy_variables, parent1Copy_operators); EF_Equation child2 = new EF_Equation(parent2Copy_eq, parent1Copy_variables, parent2Copy_operators); return(Tuple.Create(child1, child2)); }