Changeset 6010


Ignore:
Timestamp:
02/27/04 14:38:44 (17 years ago)
Author:
piso
Message:

truncate()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/LispFloat.java

    r5785 r6010  
    33 *
    44 * Copyright (C) 2003-2004 Peter Graves
    5  * $Id: LispFloat.java,v 1.59 2004-02-12 12:44:46 piso Exp $
     5 * $Id: LispFloat.java,v 1.60 2004-02-27 14:38:44 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    154154        }
    155155        catch (ClassCastException e) {
    156             signal(new TypeError(obj, "float"));
     156            signal(new TypeError(obj, Symbol.FLOAT));
    157157            // Not reached.
    158158            return 0;
     
    193193            return new LispFloat(value + ((LispFloat)obj).value);
    194194        if (obj instanceof Fixnum)
    195             return new LispFloat(value + ((Fixnum)obj).getValue());
     195            return new LispFloat(value + ((Fixnum)obj).value);
    196196        if (obj instanceof Bignum)
    197197            return new LispFloat(value + ((Bignum)obj).floatValue());
     
    210210            return new LispFloat(value - ((LispFloat)obj).value);
    211211        if (obj instanceof Fixnum)
    212             return new LispFloat(value - ((Fixnum)obj).getValue());
     212            return new LispFloat(value - ((Fixnum)obj).value);
    213213        if (obj instanceof Bignum)
    214214            return new LispFloat(value - ((Bignum)obj).floatValue());
     
    228228            return new LispFloat(value * ((LispFloat)obj).value);
    229229        if (obj instanceof Fixnum)
    230             return new LispFloat(value * ((Fixnum)obj).getValue());
     230            return new LispFloat(value * ((Fixnum)obj).value);
    231231        if (obj instanceof Bignum)
    232232            return new LispFloat(value * ((Bignum)obj).floatValue());
     
    248248            return new LispFloat(value / ((LispFloat)obj).value);
    249249        if (obj instanceof Fixnum)
    250             return new LispFloat(value / ((Fixnum)obj).getValue());
     250            return new LispFloat(value / ((Fixnum)obj).value);
    251251        if (obj instanceof Bignum)
    252252            return new LispFloat(value / ((Bignum)obj).floatValue());
     
    271271            return value == ((LispFloat)obj).value;
    272272        if (obj instanceof Fixnum)
    273             return value == ((Fixnum)obj).getValue();
     273            return value == ((Fixnum)obj).value;
    274274        if (obj instanceof Bignum)
    275275            return value == ((Bignum)obj).floatValue();
     
    293293            return value < ((LispFloat)obj).value;
    294294        if (obj instanceof Fixnum)
    295             return value < ((Fixnum)obj).getValue();
     295            return value < ((Fixnum)obj).value;
    296296        if (obj instanceof Bignum)
    297297            return value < ((Bignum)obj).floatValue();
     
    308308            return value > ((LispFloat)obj).value;
    309309        if (obj instanceof Fixnum)
    310             return value > ((Fixnum)obj).getValue();
     310            return value > ((Fixnum)obj).value;
    311311        if (obj instanceof Bignum)
    312312            return value > ((Bignum)obj).floatValue();
     
    323323            return value <= ((LispFloat)obj).value;
    324324        if (obj instanceof Fixnum)
    325             return value <= ((Fixnum)obj).getValue();
     325            return value <= ((Fixnum)obj).value;
    326326        if (obj instanceof Bignum)
    327327            return value <= ((Bignum)obj).floatValue();
     
    338338            return value >= ((LispFloat)obj).value;
    339339        if (obj instanceof Fixnum)
    340             return value >= ((Fixnum)obj).getValue();
     340            return value >= ((Fixnum)obj).value;
    341341        if (obj instanceof Bignum)
    342342            return value >= ((Bignum)obj).floatValue();
     
    352352        final LispThread thread = LispThread.currentThread();
    353353        if (obj instanceof Fixnum) {
    354             long divisor = ((Fixnum)obj).getValue();
     354            long divisor = ((Fixnum)obj).value;
    355355            double quotient = value / divisor;
    356356            double remainder = value % divisor;
    357             if (quotient >= Integer.MIN_VALUE && quotient <= Integer.MAX_VALUE)
    358                 return thread.setValues(new Fixnum((int)quotient),
    359                                         new LispFloat(remainder));
     357            return thread.setValues(number((long)quotient),
     358                                    new LispFloat(remainder));
    360359        }
    361360        if (obj instanceof LispFloat) {
    362             double divisor = ((LispFloat)obj).getValue();
     361            double divisor = ((LispFloat)obj).value;
    363362            double quotient = value / divisor;
    364363            if (quotient >= Integer.MIN_VALUE && quotient <= Integer.MAX_VALUE) {
     
    462461            return (LispFloat) obj;
    463462        if (obj instanceof Fixnum)
    464             return new LispFloat(((Fixnum)obj).getValue());
     463            return new LispFloat(((Fixnum)obj).value);
    465464        if (obj instanceof Bignum)
    466465            return new LispFloat(((Bignum)obj).floatValue());
     
    475474    // ### coerce-to-float
    476475    private static final Primitive1 COERCE_TO_FLOAT =
    477         new Primitive1("coerce-to-float", PACKAGE_SYS, false) {
     476        new Primitive1("coerce-to-float", PACKAGE_SYS, false)
     477    {
    478478        public LispObject execute(LispObject arg) throws ConditionThrowable
    479479        {
     
    503503        public LispObject execute(LispObject arg) throws ConditionThrowable
    504504        {
    505             return arg.FLOATP();
     505            return arg instanceof LispFloat ? T : NIL;
    506506        }
    507507    };
Note: See TracChangeset for help on using the changeset viewer.