Package jmathexpr

Examples of jmathexpr.Expression


       
        return value;
    }
   
    private Expression simplify() {
        Expression evaluated = operand.evaluate();
       
        if (evaluated instanceof Addition) { // -(a + b) = -a - b : needed by Sum.evaluation
            Addition sum = (Addition) evaluated;
           
            return new Subtraction(new Negation(sum.lhs()), sum.rhs()).evaluate();
        } else if (evaluated instanceof Subtraction) {
            Subtraction diff = (Subtraction) evaluated;
           
            return new Subtraction(diff.rhs(), diff.lhs()).evaluate();
        } else if (evaluated instanceof Sum) {
            return ((Sum) evaluated).negate().evaluate();
        } else if (evaluated instanceof Division) {
            Expression n = ((Division) evaluated).lhs();
            Expression d = ((Division) evaluated).rhs();
           
            return new Division(new Negation(n), d).evaluate();
        }
       
        return new Negation(evaluated);
View Full Code Here


        super(lhs, rhs, RelationSymbol.LT);
    }
   
    @Override
    public Expression evaluate() {
        Expression l = lhs.evaluate();
        Expression r = rhs.evaluate();
       
        if (l instanceof ANumber && r instanceof ANumber) {
            OrderedPair args = Numbers.toSameType(l, r);
           
            return TruthValue.valueOf(((ANumber) args.a()).lt((ANumber) args.b()));
        } else if (l.equals(Infinity.MINUS_INFINITY) && (r instanceof ANumber)) {
            return TruthValue.True;
        } else if (r.equals(Infinity.PLUS_INFINITY) && (l instanceof ANumber)) {
            return TruthValue.True;
        } else if (l.equals(Infinity.MINUS_INFINITY) && r.equals(Infinity.PLUS_INFINITY)) {
            return TruthValue.True;
        }

        return new LT(l, r);
    }
View Full Code Here

        super(lhs, rhs, RelationSymbol.LE);
    }
   
    @Override
    public Expression evaluate() {
        Expression l = lhs.evaluate();
        Expression r = rhs.evaluate();
       
        if (l instanceof ANumber && r instanceof ANumber) {
            OrderedPair args = Numbers.toSameType(l, r);
           
            return TruthValue.valueOf(((ANumber) args.a()).le((ANumber) args.b()));
        } else if (l.equals(Infinity.MINUS_INFINITY) &&
                ((r instanceof Infinity) || (r instanceof ANumber))) {
            return TruthValue.True;
        } else if (r.equals(Infinity.PLUS_INFINITY) &&
                ((l instanceof Infinity) || (l instanceof ANumber))) {
            return TruthValue.True;
        } else if (l.equals(Infinity.MINUS_INFINITY) && r.equals(Infinity.PLUS_INFINITY)) {
            return TruthValue.True;
        }

        return new LE(l, r);
    }
View Full Code Here

            }

            @Override
            public Expression apply() {
                Equality eq = (Equality) target;
                Expression lhs = Sum.subtract(eq.lhs(), a.hit());
                Expression rhs = Sum.subtract(eq.rhs(), a.hit());

                return new Equality(lhs, rhs);
            }
View Full Code Here

            }

            @Override
            public Expression apply() {
                Equality eq = (Equality) target;
                Expression lhs = Sum.add(eq.lhs(), a.hit());
                Expression rhs = Sum.add(eq.rhs(), a.hit());

                return new Equality(lhs, rhs);
            }
View Full Code Here

        return null;   
    }

    @Override
    public Expression evaluate() {
        Expression xvalue = x.evaluate();
       
        if (xvalue instanceof ANumber) {
            return evaluate((ANumber) xvalue);
        }
       
        NavigableMap<NaturalNumber, Expression> map = new TreeMap();
        Expression c;
       
        for (NaturalNumber n : coeffs.descendingKeySet()) {
            c = coeffs.get(n).evaluate();
           
            if (!(c instanceof ANumber && ((ANumber) c).isZero())) {
View Full Code Here

       
        return new Polynomial(map, x);
    }
   
    private Expression evaluate(ANumber xvalue) {
        Expression sum = null;
        Expression c, term;
       
        for (NaturalNumber n : coeffs.descendingKeySet()) {
            c = coeffs.get(n).evaluate();
            term = new Multiplication(c, new Exponentiation(xvalue, n));
           
View Full Code Here

    public Expression discriminant() {
        NaturalNumber two = Naturals.getInstance().create(2);
        NaturalNumber four = Naturals.getInstance().create(4);
       
        if (degree().equals(two)) {
            Expression a = coeffs.get(two);
            Expression b = coeffs.get(ONE);
            Expression c = coeffs.get(ZERO);
           
            return new Subtraction(new Exponentiation(b, two),
                    new Multiplication(four, new Multiplication(a, c)));
        } else {
            throw new UnsupportedOperationException("Cannot compute discriminant: " + this);
View Full Code Here

     *
     * @param degree the degree of the term
     * @return the coefficient
     */
    public Expression getCoefficient(long degree) {
        Expression c = coeffs.get(Naturals.getInstance().create(degree));
       
        return c != null ? c : ZERO;
    }
View Full Code Here

     *
     * @param degree the degree of the requested term
     * @return the requested term or 0
     */
    public Expression getTerm(NaturalNumber degree) {
        Expression c = coeffs.get(degree);
       
        if (c != null) {
            if (degree.equals(ZERO)) {
                return c;
            } else if (degree.equals(ONE)) {
View Full Code Here

TOP

Related Classes of jmathexpr.Expression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.