Changeset 9959


Ignore:
Timestamp:
09/12/05 01:53:18 (16 years ago)
Author:
piso
Message:

EXPT: trap overflow/underflow.

File:
1 edited

Legend:

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

    r9958 r9959  
    33 *
    44 * Copyright (C) 2004-2005 Peter Graves
    5  * $Id: MathFunctions.java,v 1.29 2005-09-12 01:15:13 piso Exp $
     5 * $Id: MathFunctions.java,v 1.30 2005-09-12 01:53:18 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    756756                    for (int i = -pow; i-- > 0;)
    757757                        result = result.divideBy(base);
     758                }
     759                if (TRAP_OVERFLOW) {
     760                    if (result instanceof SingleFloat)
     761                        if (Float.isInfinite(((SingleFloat)result).value))
     762                            return signal(new FloatingPointOverflow(NIL));
     763                    if (result instanceof DoubleFloat)
     764                        if (Double.isInfinite(((DoubleFloat)result).value))
     765                            return signal(new FloatingPointOverflow(NIL));
     766                }
     767                if (TRAP_UNDERFLOW) {
     768                    if (result.zerop())
     769                        return signal(new FloatingPointUnderflow(NIL));
    758770                }
    759771                return result;
Note: See TracChangeset for help on using the changeset viewer.