Esempio n. 1
0
        public static Sexpr sub(Sexpr l, Sexpr r)
        {
            if(l.isConstant() && r.isConstant())
               return new Constant(l.getValue() - r.getValue());

            else if(l.isZero())
                return new Negation(r);

            else if(r.isZero())
                return l;

            else
                return new Subtraction(l,r);
        }
Esempio n. 2
0
        public static Sexpr div(Sexpr l, Sexpr r)
        {
            if(r.isZero())
            throw new CalculatorException("F�r inte dela med noll");

            else
            {
            if(l.isConstant() && r.isConstant())
                return new Constant(l.getValue() / r.getValue());

            else if(l.isZero())
                return new Constant(0);

            else
                return new Div(l,r);
            }
        }
Esempio n. 3
0
        public static Sexpr mult(Sexpr l, Sexpr r)
        {
            if(l.isConstant() && r.isConstant())
            return new Constant(l.getValue() * r.getValue());

            else if(l.isZero() || r.isZero())
            return new Constant(0);

            else if(l.isOne())
            return r;
            else if(r.isOne())
            return l;

            else
            return new Mult(l,r);
        }
Esempio n. 4
0
        public static Sexpr add(Sexpr l, Sexpr r)
        {
            if (l.isConstant() && r.isConstant())
            {
                Sexpr ret = new Constant(l.getValue() + r.getValue());

                // return new Constant(l.getValue() + r.getValue());
                return ret;
            }
            else if (l.isZero())
                return r;

            else if (r.isZero())
                return l;

            else
                return new addition(l, r);
        }