public Operation(DoubleMethod <T> method) { _method = method; }
public Operation(DoubleMethod <T> method, INode <T> left, INode <T> right) : this(left, right) { _method = method; }
public INode <double> GetPowOperation(INode <double> first, INode <double> second) { DoubleMethod <double> pow = new DoubleMethod <double>(Operation.POW, (double one, double two) => Math.Pow(one, two)); return(new Operation <double>(pow, first, second)); }
public INode <double> GetDivideOperation(INode <double> first, INode <double> second) { DoubleMethod <double> divide = new DoubleMethod <double>(Operation.DIVIDE, (double one, double two) => one / two); return(new Operation <double>(divide, first, second)); }
public INode <double> GetMultiplyOperation(INode <double> first, INode <double> second) { DoubleMethod <double> multiply = new DoubleMethod <double>(Operation.MULTIPLY, (double one, double two) => one * two); return(new Operation <double>(multiply, first, second)); }
public INode <double> GetSubtractOperation(INode <double> first, INode <double> second) { DoubleMethod <double> substract = new DoubleMethod <double>(Operation.SUBTRACT, (double one, double two) => one - two); return(new Operation <double>(substract, first, second)); }
public INode <double> GetAddOperation(INode <double> first, INode <double> second) { DoubleMethod <double> add = new DoubleMethod <double>(Operation.ADD, (double one, double two) => one + two); return(new Operation <double>(add, first, second)); }