Changeset 11287
- Timestamp:
- 08/16/08 20:23:16 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/MathFunctions.java
r11286 r11287 738 738 int pow = ((Fixnum)power).value; 739 739 if (pow > 0) { 740 for (int i = pow; i-- > 0;) 741 result = result.multiplyBy(base); 740 LispObject term = base; 741 while (pow != 0) { 742 if ((pow & 1) == 1) 743 result = result.multiplyBy(term); 744 745 term = term.multiplyBy(term); 746 pow = pow >> 1; 747 } 742 748 } else if (pow < 0) { 743 for (int i = -pow; i-- > 0;) 744 result = result.divideBy(base); 749 LispObject term = base; 750 pow = -pow; 751 while (pow != 0) { 752 if ((pow & 1) == 1) 753 result = result.divideBy(term); 754 755 term = term.multiplyBy(term); 756 pow = pow >> 1; 757 } 745 758 } 746 759 if (TRAP_OVERFLOW) {
Note: See TracChangeset
for help on using the changeset viewer.