Introduction Recipe 6.1. Using Compact Operator Notation Recipe 6.2. Choosing Integers of the Right Size and Type for the Job Recipe 6.3. Using Unsigned Integers Recipe 6.4. Swapping Two Integers Without Using a Third Recipe 6.5. Using Single- and Double-Precision Variables Recipe 6.6. Using Decimal Variables for Maximum Precision Recipe 6.7. Converting Between Number Types Recipe 6.8. Rounding Numbers Accurately Recipe 6.9. Declaring Loop Counters Within Loops Recipe 6.10. Converting Between Radians and Degrees Recipe 6.11. Limiting Angles to a Range Recipe 6.12. Creating Double-Precision Point Variables Recipe 6.13. Converting Between Rectangular and Polar Coordinates Recipe 6.14. Creating Three-Dimensional Variables Recipe 6.15. Converting Between Rectangular, Spherical, and Cylindrical Coordinates Recipe 6.16. Working with Complex Numbers Recipe 6.17. Solving Right Triangles Recipe 6.18. Solving Any Triangle Recipe 6.19. Determining if a String Contains a Valid Number Recipe 6.20. Converting Numbers to Integers Recipe 6.21. Calculating π to Thousands of Digits Recipe 6.22. Getting a Number's Prime Factors Recipe 6.23. Using Recursion to Calculate Factorials Recipe 6.24. Manipulating Bits with Bitwise Operators Recipe 6.25. Storing and Retrieving Bits in a BitArray Recipe 6.26. Enhancing the Random Number Generator Recipe 6.27. Generating Random Integers in a Range Recipe 6.28. Generating Random Real Numbers in a Range Recipe 6.29. Generating Normal-Distribution Random Numbers Recipe 6.30. Generating Exponential-Distribution Random Numbers Recipe 6.31. Creating a Matrix Recipe 6.32. Inverting a Matrix Recipe 6.33. Calculating the Determinant of a Matrix Recipe 6.34. Solving Simultaneous Equations Recipe 6.35. Listing of the MatrixHelper Class |