Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
VelEng Multiprecision
Last Revision: | Version 1.0, 2003-01-14 An implementation of arbitrary precision arithmetic using the PowerPC Velocity-Engine (G4) vector instructions. |
Build Requirements: | Xcode v2.1, gcc 3.3 |
Runtime Requirements: | Mac OS X 10.3, PowerPC Velocity-Engine |
An implementation of arbitrary precision arithmetic using the PowerPC Velocity-Engine (G4) vector instructions. We first define essential digit size of a multiprecision integer to be 128 bits, in view of the Velocity Engine architecture. By designing a general purpose vector library comprised of multiplication, square, bit shift and bitwise comparison, we have achieved significant speedups over PowerPC G3 scalar (base-2^16 ) implementation, or even hand-tuned assembly (base-2^32 ) packages. In particular, vector multiplications enjoy performance improvements ranging from 3:1 to 10:1 over their scalar counterpart, depending on operand bit size. An application for general purpose integer factoring was written and is able to factor large integers with speedups factors roughly in the aforementioned range. A second, large convolution application was written to settle a certain research problem; in this instance a length-2 15 convolution of 512-bit elements is performed. Requirements: G4 Keywords: Velocity Engine, AlitVec, Multiprecision arithmetic, arbitrary precision arithmetic,
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14