Changeset 12973 for branches/working0711/ccl/level0/l0bignum64.lisp
 Timestamp:
 Oct 9, 2009, 8:40:00 PM (10 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

branches/working0711/ccl/level0/l0bignum64.lisp
r12048 r12973 804 804 (lenb (%bignumlength b)) 805 805 (lenres (+ lena lenb)) 806 (res (%allocatebignum lenres)) 806 (res (%allocatebignum lenres))) 807 807 (declare (bignumindex lena lenb lenres)) 808 808 (dotimes (i lena) 809 809 (declare (type bignumindex i)) 810 810 (%multiplyandaddloop a b res i lenb)) 811 res)) 812 (multiplyunsignedbignums64 (a b) 813 (let* ((lena (ceiling (%bignumlength a) 2)) 814 (lenb (ceiling (%bignumlength b) 2)) 815 (lenres (+ lena lenb)) 816 (res (%allocatebignum (+ lenres lenres)))) 817 (declare (bignumindex lena lenb lenres)) 818 (dotimes (i lena) 819 (declare (type bignumindex i)) 820 (%multiplyandaddloop64 a b res i lenb)) 811 821 res))) 812 (let* ((res (withnegatedbignumbuffers a b multiplyunsignedbignums))) 822 (let* ((res (withnegatedbignumbuffers a b 823 multiplyunsignedbignums64))) 813 824 (if signsdiffer (negatebignuminplace res)) 814 825 (%normalizebignummacro res))))) 815 826 816 827 (defun multiplybignumandfixnum (bignum fixnum) 828 (declare (type bignumtype bignum) (fixnum fixnum)) 829 (if (eql fixnum 1) 830 bignum 831 (withsmallbignumbuffers ((bigfix fixnum)) 832 (multiplybignums bignum bigfix)))) 833 834 #+slower 817 835 (defun multiplybignumandfixnum (bignum fixnum) 818 836 (declare (type bignumtype bignum) (fixnum fixnum))
Note: See TracChangeset
for help on using the changeset viewer.