ebook img

Vector Game Math Processors PDF

529 Pages·2003·4.229 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Vector Game Math Processors

Y L F M A E T Team-Fly® Vector Game Math Processors James Leiterman Wordware Publishing, Inc. LibraryofCongressCataloging-in-PublicationData Leiterman,James. Vectorgamemathprocessors/byJamesLeiterman. p. cm. Includesbibliographicalreferencesandindex. ISBN 1-55622-921-6 1. Vectorprocessing(Computerscience). 2. Computergames--Programming. 3. Supercomputers--Programming. 4. Computerscience--Mathematics. 5. Algorithms. I. Title. QA76.5.L4462002 004'.35--dc21 2002014988 CIP ©2003,WordwarePublishing,Inc. AllRightsReserved 2320LosRiosBoulevard Plano,Texas75074 Nopartofthisbookmaybereproducedinanyformorbyanymeans withoutpermissioninwritingfromWordwarePublishing,Inc. PrintedintheUnitedStatesofAmerica ISBN1-55622-921-6 10 9 8 7 6 5 4 3 2 1 0211 Productnamesmentionedareusedforidentificationpurposesonlyandmaybetrademarksoftheirrespective companies. All inquiries for volume purchases of this book should be addressed to Wordware Publishing,Inc.,attheaboveaddress.Telephoneinquiriesmaybemadebycalling: (972)423-0090 Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Chapter 1 Introduction . . . . . . . . . . . . . . . . 1 BookLegend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 CDFiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Graphics101 . . . . . . . . . . . . . . . . . . . . . . . . . . 11 AlgebraicLaws. . . . . . . . . . . . . . . . . . . . . . . . . 11 I-VU-Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Insight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapter 2 Coding Standards . . . . . . . . . . . . 14 Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 DataAlignment . . . . . . . . . . . . . . . . . . . . . . . . . . 15 PancakeMemoryLIFOQueue. . . . . . . . . . . . . . . . . 18 Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 MemorySystems . . . . . . . . . . . . . . . . . . . . . . . . . 24 RamTestMemoryAlignmentTest. . . . . . . . . . . . . . . 25 MemoryHeader . . . . . . . . . . . . . . . . . . . . . . . . 26 AllocateMemory(MallocWrapper). . . . . . . . . . . . . . 27 ReleaseMemory(FreeWrapper) . . . . . . . . . . . . . . . 28 AllocateMemory. . . . . . . . . . . . . . . . . . . . . . . . 29 Allocate(Cleared)Memory . . . . . . . . . . . . . . . . . . 29 FreeMemory—PointerisSettoNULL . . . . . . . . . . . 29 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Chapter 3 Processor Differential Insight . . . . . . 31 Floating-Point101. . . . . . . . . . . . . . . . . . . . . . . . . 31 Floating-PointComparison . . . . . . . . . . . . . . . . . . . . 33 ProcessorDataTypeEncoding . . . . . . . . . . . . . . . . . . 36 X86andIBMPersonalComputer . . . . . . . . . . . . . . . 38 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 DestinationandSourceOrientations. . . . . . . . . . . . . . 43 BigandLittleEndian. . . . . . . . . . . . . . . . . . . . . . 44 MIPSMultimediaInstructions(MMI). . . . . . . . . . . . . 47 PS2VUCoprocessorInstructionSupposition. . . . . . . . . 51 GekkoSupposition. . . . . . . . . . . . . . . . . . . . . . . 52 FunctionWrappers. . . . . . . . . . . . . . . . . . . . . . . . . 54 iii iv Contents IntegerFunctionWrappers. . . . . . . . . . . . . . . . . . . 54 Single-PrecisionFunctionQuadVectorWrappers . . . . . . 62 Double-PrecisionFunctionQuadVectorWrappers . . . . . . 67 Single-PrecisionFunctionVectorWrappers. . . . . . . . . . 68 Double-PrecisionFunctionVectorWrappers . . . . . . . . . 71 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Chapter 4 Vector Methodologies . . . . . . . . . . 74 TargetProcessor. . . . . . . . . . . . . . . . . . . . . . . . . . 74 TypeofData. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 AoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 SoA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 APossibleSolution? . . . . . . . . . . . . . . . . . . . . . . 77 PackedandParallelandPickled. . . . . . . . . . . . . . . . 81 DiscreteorParallel?. . . . . . . . . . . . . . . . . . . . . . . . 83 AlgorithmicBreakdown. . . . . . . . . . . . . . . . . . . . . . 86 ArraySummation. . . . . . . . . . . . . . . . . . . . . . . . 86 ThinkingOutoftheBox(Hexagon) . . . . . . . . . . . . . . . 90 VerticalInterpolationwithRounding . . . . . . . . . . . . . 91 Exercises. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Chapter 5 Vector Data Conversion . . . . . . . . . 95 (Un)alignedMemoryAccess . . . . . . . . . . . . . . . . . . . 95 PseudoVec(X86) . . . . . . . . . . . . . . . . . . . . . . . 95 PseudoVec(PowerPC). . . . . . . . . . . . . . . . . . . . . 98 PseudoVec(AltiVec). . . . . . . . . . . . . . . . . . . . . . 99 PseudoVec(MIPS-MMI) . . . . . . . . . . . . . . . . . . . 99 PseudoVec(MIPS-VU0). . . . . . . . . . . . . . . . . . . 101 DataInterlacing,Exchanging,Unpacking,andMerging . . . . 101 Swizzle,Shuffle,andSplat. . . . . . . . . . . . . . . . . . . . 114 VectorSplatImmediateSignedByte(16x8-bit) . . . . . . . 114 VectorSplatByte(16x8-bit) . . . . . . . . . . . . . . . . . 114 VectorSplatImmediateSignedHalf-Word(8x16-bit). . . . 115 VectorSplatHalf-Word(8x16-bit) . . . . . . . . . . . . . . 115 ParallelCopyHalf-Word(8x16-bit) . . . . . . . . . . . . . 115 ExtractWordintoIntegerRegister(4x16-bit)to(1x16). . . 116 InsertWordfromIntegerRegister(1x16)to(4x16-bit) . . . 116 Shuffle-PackedWords(4x16-bit). . . . . . . . . . . . . . . 117 Shuffle-PackedLowWords(4x16-bit). . . . . . . . . . . . 117 Shuffle-PackedHighWords(4x16-bit). . . . . . . . . . . . 117 VectorSplatImmediateSignedWord(8x16-bit). . . . . . . 118 VectorSplatWord(8x16-bit). . . . . . . . . . . . . . . . . 118 Shuffle-PackedDoubleWords(4x32-bit) . . . . . . . . . . 118 GraphicsProcessorUnit(GPU)Swizzle. . . . . . . . . . . 119 DataBitExpansion—RGB5:5:5toRGB32. . . . . . . . . . 120 VectorUnpackLowPixel16(4x16-bit)to(4x32) . . . . . . 120 VectorUnpackHighPixel16(4x16-bit)to(4x32). . . . . . 120 Contents v ParallelExtendfrom5Bits. . . . . . . . . . . . . . . . . . 121 DataBitExpansion. . . . . . . . . . . . . . . . . . . . . . . . 121 VectorUnpackLow-SignedByte(8x8)to(8x16-bit) . . . . 122 VectorUnpackHigh-SignedByte(8x8)to(8x16-bit). . . . 122 VectorUnpackLow-SignedHalf-Word(4x16) to(4x32-bit) . . . . . . . . . . . . . . . . . . . . . . . . . 123 VectorUnpackHigh-SignedHalf-Word(4x16) to(4x32-bit). . . . . . . . . . . . . . . . . . . . . . . . . . 123 DataBitReduction—RGB32toRGB5:5:5 . . . . . . . . . . 123 VectorPack32-bitPixelto5:5:5. . . . . . . . . . . . . . . 124 ParallelPackto5Bits. . . . . . . . . . . . . . . . . . . . . 124 DataBitReduction(withSaturation) . . . . . . . . . . . . . . 125 VectorPackSignedHalf-WordSignedSaturate. . . . . . . 125 VectorPackSignedHalf-WordUnsignedSaturate . . . . . 125 VectorPackUnsignedHalf-WordUnsignedSaturate . . . . 126 VectorPackUnsignedHalf-WordUnsignedModulo . . . . 126 VectorPackSignedWordSignedSaturate. . . . . . . . . . 127 VectorPackSignedWordUnsignedSaturate . . . . . . . . 127 VectorPackUnsignedWordUnsignedSaturate . . . . . . . 128 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Chapter 6 Bit Mangling . . . . . . . . . . . . . . 129 BooleanLogicalAND . . . . . . . . . . . . . . . . . . . . . . 130 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 131 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 132 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 134 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 136 BooleanLogicalOR . . . . . . . . . . . . . . . . . . . . . . . 138 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 139 BooleanLogicalXOR(ExclusiveOR) . . . . . . . . . . . . . 139 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 140 ToolboxSnippet—TheButterflySwitch . . . . . . . . . . 142 I-VU-Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 BooleanLogicalANDC . . . . . . . . . . . . . . . . . . . . . 147 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 148 BooleanLogicalNOR(NOTOR). . . . . . . . . . . . . . . . 149 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 149 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 150 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 151 Graphics101—Blit. . . . . . . . . . . . . . . . . . . . . . . 151 CopyBlit . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 TransparentBlit. . . . . . . . . . . . . . . . . . . . . . . . 152 Graphics101—Blit(MMX) . . . . . . . . . . . . . . . . . . 153 GraphicsEngine—SpriteLayered . . . . . . . . . . . . . 153 GraphicsEngine—SpriteOverlay. . . . . . . . . . . . . . 154 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 vi Contents Chapter 7 Bit Wrangling. . . . . . . . . . . . . . 157 ParallelShift(Logical)Left . . . . . . . . . . . . . . . . . . . 158 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 159 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 162 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 163 PseudoVec(MMI) . . . . . . . . . . . . . . . . . . . . . . 165 ParallelShift(Logical)Right . . . . . . . . . . . . . . . . . . 168 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 169 ParallelShift(Arithmetic)Right. . . . . . . . . . . . . . . . . 170 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 172 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 175 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 176 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 176 RotateLeft(orN-Right) . . . . . . . . . . . . . . . . . . . . . 179 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 180 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 181 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 182 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 184 SecureHashAlgorithm(SHA-1) . . . . . . . . . . . . . . . . 187 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Chapter 8 Vector Addition and Subtraction. . . . 192 VectorFloating-PointAddition . . . . . . . . . . . . . . . . . 193 VectorFloating-PointAdditionwithScalar. . . . . . . . . . . 194 VectorFloating-PointSubtraction. . . . . . . . . . . . . . . . 195 vmp_VecNeg . . . . . . . . . . . . . . . . . . . . . . . . . 196 VectorFloating-PointSubtractionwithScalar . . . . . . . . . 196 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 197 VectorFloating-PointReverseSubtraction . . . . . . . . . . . 197 VectorAdditionandSubtraction(Single-Precision) . . . . . . 198 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 198 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 201 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 204 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 205 VectorScalarAdditionandSubtraction. . . . . . . . . . . . . 206 Single-PrecisionQuadVectorFloatScalarAddition . . . . 207 Single-PrecisionQuadVectorFloatScalarSubtraction . . . 207 VectorIntegerAddition . . . . . . . . . . . . . . . . . . . . . 208 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 209 VectorIntegerAdditionwithSaturation. . . . . . . . . . . . . 210 VectorIntegerSubtraction. . . . . . . . . . . . . . . . . . . . 213 VectorIntegerSubtractionwithSaturation . . . . . . . . . . . 214 VectorAdditionandSubtraction(FixedPoint) . . . . . . . . . 215 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 215 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 217 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 218 Contents vii PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 218 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Chapter 9 Vector Multiplication and Division. . . 221 Floating-PointMultiplication . . . . . . . . . . . . . . . . . . 222 NxSP-FPMultiplication . . . . . . . . . . . . . . . . . . . 222 (Semi-Vector)DP-FPMultiplication. . . . . . . . . . . . . 222 SP-FPScalarMultiplication . . . . . . . . . . . . . . . . . 223 DP-FPScalarMultiplication . . . . . . . . . . . . . . . . . 223 NxSP-FPMultiplication—Add . . . . . . . . . . . . . . . 223 SP-FPMultiplication—SubtractwithRounding . . . . . . 224 Vector(Float)Multiplication—Add . . . . . . . . . . . . . . 224 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 224 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 225 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 228 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 229 VectorScalarMultiplication. . . . . . . . . . . . . . . . . . . 230 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 231 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 231 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 232 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 233 Graphics101 . . . . . . . . . . . . . . . . . . . . . . . . . 233 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 234 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 236 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 237 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 238 Graphics101 . . . . . . . . . . . . . . . . . . . . . . . . . 238 VectorFloating-PointDivision . . . . . . . . . . . . . . . . . 242 (Vector)SP-FPDivision . . . . . . . . . . . . . . . . . . . 243 (Semi-Vector)DP-FPDivision. . . . . . . . . . . . . . . . 243 SP-FPScalarDivision . . . . . . . . . . . . . . . . . . . . 243 DP-FPScalarDivision . . . . . . . . . . . . . . . . . . . . 244 SP-FPReciprocal(14bit). . . . . . . . . . . . . . . . . . . 244 SP-FPReciprocal(2Stage)(24Bit) . . . . . . . . . . . . . 245 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 246 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 246 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 247 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 247 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 249 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 249 Packed{8/16/32}BitIntegerMultiplication . . . . . . . . . . 250 8x8-bitMultiplyEven . . . . . . . . . . . . . . . . . . . . 250 8x8-bitMultiplyOdd . . . . . . . . . . . . . . . . . . . . . 251 4x16-bitMultiplyEven. . . . . . . . . . . . . . . . . . . . 251 4x16-bitMultiplyOdd . . . . . . . . . . . . . . . . . . . . 252 viii Contents 8x16-bitParallelMultiplyHalf-Word . . . . . . . . . . . . 252 Nx16-BitParallelMultiplication(Lower) . . . . . . . . . . 253 Nx16-bitParallelMultiplication(Upper) . . . . . . . . . . 254 Signed4x16-bitMultiplicationwithRounding(Upper). . . 255 UnsignedNx32-bitMultiplyEven . . . . . . . . . . . . . . 255 IntegerMultiplicationandAddition/Subtraction. . . . . . . . 256 SignedNx16-bitParallelMultiplicationandAddition . . . 257 SignedNx16-bitParallelMultiplicationandSubtraction . . 257 [Un]signed8x16-bitMultiplicationthenAdd . . . . . . . . 258 Signed8x16-bitMultiplythenAddwithSaturation. . . . . 259 Signed8x16-bitMultiplyRoundthenAddwith Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 IntegerMultiplicationandSummation-Addition . . . . . . . . 260 16x8-bitMultiplythenQuad32-bitSum. . . . . . . . . . . 260 8x16-bitMultiplythenQuad32-bitSum. . . . . . . . . . . 260 8x16-bitMultiplythenQuad32-bitSumwithSaturation. . 261 Vector(Integer)MultiplicationandAdd . . . . . . . . . . . . 261 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 262 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 263 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 265 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 266 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 267 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 268 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 269 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 270 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 271 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 273 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 273 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Chapter 10 Special Functions. . . . . . . . . . . . 275 Min—Minimum. . . . . . . . . . . . . . . . . . . . . . . . . 275 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Max—Maximum . . . . . . . . . . . . . . . . . . . . . . . . 278 NxSP-FPMaximum. . . . . . . . . . . . . . . . . . . . . . 279 1xSP-FPScalarMaximum . . . . . . . . . . . . . . . . . . 279 1xDP-FPScalarMaximum. . . . . . . . . . . . . . . . . . 279 Nx8-bitIntegerMaximum . . . . . . . . . . . . . . . . . . 280 Nx16-bitIntegerMaximum. . . . . . . . . . . . . . . . . . 280 4x32-bitIntegerMaximum. . . . . . . . . . . . . . . . . . 281 VectorMinandMax . . . . . . . . . . . . . . . . . . . . . 281 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 281 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 282 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 283 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 283 CMP—PackedComparison . . . . . . . . . . . . . . . . . . 284 Contents ix PackedCompareifEqualto(=) . . . . . . . . . . . . . . . 284 PackedCompareifGreaterThanorEqual((cid:1) ). . . . . . . . 284 PackedCompareifGreaterThan(>). . . . . . . . . . . . . 285 Absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 PackedN-bitAbsolute . . . . . . . . . . . . . . . . . . . . 286 Averages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Nx8-bit[Un]signedIntegerAverage . . . . . . . . . . . . . 286 Nx16-bit[Un]signedIntegerAverage . . . . . . . . . . . . 287 4x32-bit[Un]signedIntegerAverage. . . . . . . . . . . . . 287 SumofAbsoluteDifferences . . . . . . . . . . . . . . . . . . 288 8x8-bitSumofAbsoluteDifferences . . . . . . . . . . . . 288 16x8-bitSumofAbsoluteDifferences. . . . . . . . . . . . 288 SQRT—SquareRoot . . . . . . . . . . . . . . . . . . . . . . 289 1xSP-FPScalarSquareRoot . . . . . . . . . . . . . . . . . 291 4xSP-FPSquareRoot. . . . . . . . . . . . . . . . . . . . . 291 1xDP-FPScalarSquareRoot. . . . . . . . . . . . . . . . . 291 2xDP-FPSquareRoot. . . . . . . . . . . . . . . . . . . . . 292 1xSP-FPScalarReciprocalSquareRoot(15Bit) . . . . . . 292 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 292 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 293 SP-FPSquareRoot(2-stage)(24Bit) . . . . . . . . . . . . 293 4xSP-FPReciprocalSquareRoot(Estimate) . . . . . . . . 294 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 296 VectorSquareRoot . . . . . . . . . . . . . . . . . . . . . . 297 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 297 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 298 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 299 PseudoVec(MIPS) . . . . . . . . . . . . . . . . . . . . . . 300 Graphics101 . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 VectorMagnitude(Alias:3DPythagoreanTheorem) . . . . 301 PseudoVec . . . . . . . . . . . . . . . . . . . . . . . . . . 304 PseudoVec(X86). . . . . . . . . . . . . . . . . . . . . . . 304 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 305 Graphics101 . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 VectorNormalize . . . . . . . . . . . . . . . . . . . . . . . 306 PseudoVec(PowerPC) . . . . . . . . . . . . . . . . . . . . 308 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Chapter 11 A Wee Bit O’Trig . . . . . . . . . . . . 311 3DCartesianCoordinateSystem . . . . . . . . . . . . . . . . 312 3DPolarCoordinateSystem. . . . . . . . . . . . . . . . . . . 312 AnalyticGeometry. . . . . . . . . . . . . . . . . . . . . . . . 313 SimilarTriangles . . . . . . . . . . . . . . . . . . . . . . . 313 EquationofaStraightLine. . . . . . . . . . . . . . . . . . 314 Equationofa2DCircle. . . . . . . . . . . . . . . . . . . . 314 SineandCosineFunctions. . . . . . . . . . . . . . . . . . . . 315

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.