Package net.fortytwo.ripple.model

Examples of net.fortytwo.ripple.model.NumericValue


    // Note: objects which are not equivalent in Ripple (e.g. a wrapped URI and
    // a wrapped xsd:anyURI-typed literal) may map to equivalent Java objects.
    private Object toJavaObject(final RippleValue v) throws ScriptException {
        if (v instanceof NumericValue) {
            NumericValue n = (NumericValue) v;
            switch (n.getDatatype()) {
                case DECIMAL:
                    return n.decimalValue();
                case DOUBLE:
                    return n.doubleValue();
                case FLOAT:
                    return n.floatValue();
                case INTEGER:
                    return n.intValue();
                case LONG:
                    return n.longValue();
                default:
                    throw new ScriptException("numeric value of unexpected type: " + v);
            }
        } else if (v instanceof RDFValue) {
            return toJavaObject(((RDFValue) v).sesameValue());
View Full Code Here


    public void apply(final RippleList arg,
                      final Sink<RippleList> solutions,
                      final ModelConnection mc) throws RippleException {
        RippleList stack = arg;

        NumericValue a, result;

        a = mc.toNumericValue(stack.getFirst());
        stack = stack.getRest();

        result = mc.valueOf(Math.cbrt(a.doubleValue()));

        solutions.put(
                stack.push(result));
    }
View Full Code Here

        return rdfEquivalent;
    }

    public NumericValue abs() {
        NumericValue a = this;

        switch (a.getDatatype()) {
            case INTEGER:
                return new SesameNumericValue(Math.abs(a.intValue()));
            case LONG:
                return new SesameNumericValue(Math.abs(a.longValue()));
            case FLOAT:
                return new SesameNumericValue(Math.abs(a.floatValue()));
            case DOUBLE:
                return new SesameNumericValue(Math.abs(a.doubleValue()));
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().abs());
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

                return null;
        }
    }

    public NumericValue neg() {
        NumericValue a = this;

        switch (a.getDatatype()) {
            case INTEGER:
                return new SesameNumericValue(-a.intValue());
            case LONG:
                return new SesameNumericValue(-a.longValue());
            case FLOAT:
                return new SesameNumericValue(-a.floatValue());
            case DOUBLE:
                // Note: avoids negative zero.
                return new SesameNumericValue(0.0 - a.doubleValue());
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().negate());
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

                return null;
        }
    }

    public NumericValue add(final NumericValue b) {
        NumericValue a = this;

        Type precision = maxPrecision(a, b);
        switch (precision) {
            case INTEGER:
                return new SesameNumericValue(a.intValue() + b.intValue());
            case LONG:
                return new SesameNumericValue(a.longValue() + b.longValue());
            case FLOAT:
                return new SesameNumericValue(a.floatValue() + b.floatValue());
            case DOUBLE:
                return new SesameNumericValue(a.doubleValue() + b.doubleValue());
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().add(b.decimalValue()));
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

                return null;
        }
    }

    public NumericValue sub(final NumericValue b) {
        NumericValue a = this;

        Type precision = maxPrecision(a, b);
        switch (precision) {
            case INTEGER:
                return new SesameNumericValue(a.intValue() - b.intValue());
            case LONG:
                return new SesameNumericValue(a.longValue() - b.longValue());
            case FLOAT:
                return new SesameNumericValue(a.floatValue() - b.floatValue());
            case DOUBLE:
                return new SesameNumericValue(a.doubleValue() - b.doubleValue());
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().subtract(b.decimalValue()));
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

        public void apply(final RippleList arg,
                          final Sink<RippleList> solutions,
                          final ModelConnection mc) throws RippleException {
            RippleList stack = arg;

            NumericValue a, result;

            a = mc.toNumericValue(stack.getFirst());
            stack = stack.getRest();

            result = a.mul(a).mul(a);

            solutions.put(
                    stack.push(result));
        }
View Full Code Here

                return null;
        }
    }

    public NumericValue mul(final NumericValue b) {
        NumericValue a = this;

        Type precision = maxPrecision(a, b);
        switch (precision) {
            case INTEGER:
                return new SesameNumericValue(a.intValue() * b.intValue());
            case LONG:
                return new SesameNumericValue(a.longValue() * b.longValue());
            case FLOAT:
                return new SesameNumericValue(a.floatValue() * b.floatValue());
            case DOUBLE:
                return new SesameNumericValue(a.doubleValue() * b.doubleValue());
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().multiply(b.decimalValue()));
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

    public void apply(final RippleList arg,
                      final Sink<RippleList> solutions,
                      final ModelConnection mc) throws RippleException {
        RippleList stack = arg;

        NumericValue a, b, result;

        b = mc.toNumericValue(stack.getFirst());
        stack = stack.getRest();
        a = mc.toNumericValue(stack.getFirst());
        stack = stack.getRest();

        // Note: mod by zero simply does not yield a result.
        if (!b.isZero()) {
            result = a.mod(b);

            solutions.put(
                    stack.push(result));
        }
    }
View Full Code Here

        }
    }

    // Note: does not check for divide-by-zero.
    public NumericValue div(final NumericValue b) {
        NumericValue a = this;

        Type precision = maxPrecision(a, b);
        switch (precision) {
            case INTEGER:
                return new SesameNumericValue(a.intValue() / b.intValue());
            case LONG:
                return new SesameNumericValue(a.longValue() / b.longValue());
            case FLOAT:
                return new SesameNumericValue(a.floatValue() / b.floatValue());
            case DOUBLE:
                return new SesameNumericValue(a.doubleValue() / b.doubleValue());
            case DECIMAL:
                return new SesameNumericValue(a.decimalValue().divide(b.decimalValue()));
            default:
                // This shouldn't happen.
                return null;
        }
    }
View Full Code Here

TOP

Related Classes of net.fortytwo.ripple.model.NumericValue

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.