ebook img

Fast Library for Number Theory PDF

294 Pages·2012·1.89 MB·English
by  
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 Fast Library for Number Theory

FLINT Fast Library for Number Theory Version 2.3.0 1 July 2012 William Hart∗, Fredrik Johansson†, Sebastian Pancratz‡ ∗ Supported by EPSRC Grant EP/G004870/1 † Supported by Austrian Science Foundation (FWF) Grant Y464-N18 ‡ Supported by European Research Council Grant 204083 Contents 1 Introduction 1 2 Building and using FLINT 3 3 Test code 5 4 Reporting bugs 7 5 Contributors 9 6 Tuning FLINT 11 7 Example programs 13 8 FLINT macros 15 9 fmpz 17 9.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 9.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9.3 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9.4 Random generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9.5 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 9.6 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.7 Basic properties and manipulation . . . . . . . . . . . . . . . . . . . . . 22 9.8 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 9.9 Basic arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.10 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 28 9.11 Modular arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 9.12 Bit packing and unpacking . . . . . . . . . . . . . . . . . . . . . . . . . 29 9.13 Logic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 9.14 Chinese remaindering . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 10 fmpz vec 33 10.1 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 10.2 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 10.3 Bit sizes and norms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 10.4 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.5 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.6 Assignment and basic manipulation . . . . . . . . . . . . . . . . . . . . 35 10.7 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 10.8 Sorting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 10.9 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 36 10.10 Scalar multiplication and division . . . . . . . . . . . . . . . . . . . . . . 36 10.11 Sums and products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 10.12 Reduction mod p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Contents iii 10.13 Gaussian content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 11 fmpz factor 39 11.1 Factoring integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 12 fmpz mat 41 12.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 12.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 12.3 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 12.4 Basic assignment and manipulation . . . . . . . . . . . . . . . . . . . . . 42 12.5 Random matrix generation . . . . . . . . . . . . . . . . . . . . . . . . . 42 12.6 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 12.7 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 12.8 Transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 12.9 Modular reduction and reconstruction . . . . . . . . . . . . . . . . . . . 45 12.10 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 46 12.11 Matrix-scalar arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 12.12 Matrix multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 12.13 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 12.14 Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 12.15 Determinant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 12.16 Rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 12.17 Nonsingular solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 12.18 Row reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 12.19 Nullspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 12.20 Echelon form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 13 fmpz poly 53 13.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 13.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 13.3 Definition of the fmpz poly t type . . . . . . . . . . . . . . . . . . . . . 54 13.4 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 13.5 Polynomial parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 13.6 Assignment and basic manipulation . . . . . . . . . . . . . . . . . . . . 55 13.7 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 13.8 Getting and setting coefficients . . . . . . . . . . . . . . . . . . . . . . . 57 13.9 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 13.10 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 58 13.11 Scalar multiplication and division . . . . . . . . . . . . . . . . . . . . . . 59 13.12 Bit packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 13.13 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 13.14 Squaring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 13.15 Powering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 13.16 Shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 13.17 Bit sizes and norms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13.18 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13.19 Gaussian content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 13.20 Euclidean division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 13.21 Divisibility testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 13.22 Power series division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 13.23 Pseudo division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 13.24 Derivative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 13.25 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 13.26 Newton basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 iv Contents 13.27 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 13.28 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 13.29 Taylor shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 13.30 Power series composition. . . . . . . . . . . . . . . . . . . . . . . . . . . 81 13.31 Power series reversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 13.32 Square root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 13.33 Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 13.34 Hensel lifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 13.35 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 13.36 Modular reduction and reconstruction . . . . . . . . . . . . . . . . . . . 89 13.37 Products. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 13.38 Newton basis conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 14 fmpz poly factor 93 14.1 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 14.2 Manipulating factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 14.3 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 14.4 Factoring algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 15 fmpq 97 15.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 15.2 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 15.3 Canonicalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 15.4 Basic assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 15.5 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 15.6 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 15.7 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 15.8 Random number generation . . . . . . . . . . . . . . . . . . . . . . . . . 101 15.9 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 15.10 Modular reduction and rational reconstruction . . . . . . . . . . . . . . 103 15.11 Rational enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 15.12 Continued fractions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 15.13 Summation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 16 fmpq mat 107 16.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 16.2 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 16.3 Entry access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 16.4 Basic assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 16.5 Addition, scalar multiplication . . . . . . . . . . . . . . . . . . . . . . . 108 16.6 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 16.7 Random matrix generation . . . . . . . . . . . . . . . . . . . . . . . . . 109 16.8 Special matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 16.9 Basic comparison and properties . . . . . . . . . . . . . . . . . . . . . . 109 16.10 Integer matrix conversion . . . . . . . . . . . . . . . . . . . . . . . . . . 109 16.11 Modular reduction and rational reconstruction . . . . . . . . . . . . . . 110 16.12 Matrix multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 16.13 Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 16.14 Determinant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 16.15 Nonsingular solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 16.16 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 16.17 Echelon form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 17 fmpq poly 113 17.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Contents v 17.2 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 17.3 Polynomial parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 17.4 Accessing the numerator and denominator . . . . . . . . . . . . . . . . . 115 17.5 Random testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 17.6 Assignment, swap, negation . . . . . . . . . . . . . . . . . . . . . . . . . 116 17.7 Getting and setting coefficients . . . . . . . . . . . . . . . . . . . . . . . 117 17.8 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 17.9 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 119 17.10 Scalar multiplication and division . . . . . . . . . . . . . . . . . . . . . . 119 17.11 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 17.12 Powering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 17.13 Shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 17.14 Euclidean division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 17.15 Power series division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 17.16 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 124 17.17 Derivative and integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 17.18 Square roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 17.19 Transcendental functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 126 17.20 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 17.21 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 17.22 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 17.23 Power series composition. . . . . . . . . . . . . . . . . . . . . . . . . . . 130 17.24 Power series reversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 17.25 Gaussian content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 17.26 Square-free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 17.27 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 18 fmpz poly q 137 18.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 18.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 18.3 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 18.4 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 18.5 Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 18.6 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 18.7 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 139 18.8 Scalar multiplication and division . . . . . . . . . . . . . . . . . . . . . . 140 18.9 Multiplication and division . . . . . . . . . . . . . . . . . . . . . . . . . 140 18.10 Powering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 18.11 Derivative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 18.12 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 18.13 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 19 fmpz poly mat 143 19.1 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 19.2 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.3 Basic properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.4 Basic assignment and manipulation . . . . . . . . . . . . . . . . . . . . . 144 19.5 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.6 Random matrix generation . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.7 Special matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.8 Basic comparison and properties . . . . . . . . . . . . . . . . . . . . . . 145 19.9 Norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.10 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 19.11 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 vi Contents 19.12 Row reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 19.13 Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 19.14 Determinant and rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 19.15 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 19.16 Nullspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 19.17 Solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 20 nmod vec 151 20.1 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 20.2 Modular reduction and arithmetic . . . . . . . . . . . . . . . . . . . . . 151 20.3 Random functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 20.4 Basic manipulation and comparison . . . . . . . . . . . . . . . . . . . . 152 20.5 Arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 20.6 Dot products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 21 nmod poly 155 21.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 21.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 21.3 Definition of the nmod poly t type . . . . . . . . . . . . . . . . . . . . . 156 21.4 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 21.5 Polynomial properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 21.6 Assignment and basic manipulation . . . . . . . . . . . . . . . . . . . . 157 21.7 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 21.8 Getting and setting coefficients . . . . . . . . . . . . . . . . . . . . . . . 158 21.9 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 21.10 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.11 Shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.12 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 159 21.13 Scalar multiplication and division . . . . . . . . . . . . . . . . . . . . . . 160 21.14 Bit packing and unpacking . . . . . . . . . . . . . . . . . . . . . . . . . 160 21.15 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 21.16 Powering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 21.17 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 21.18 Derivative and integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 21.19 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 21.20 Multipoint evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 21.21 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 21.22 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 21.23 Taylor shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 21.24 Modular composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 21.25 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 173 21.26 Power series composition. . . . . . . . . . . . . . . . . . . . . . . . . . . 176 21.27 Power series reversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 21.28 Square roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 21.29 Transcendental functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 180 21.30 Products. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 21.31 Subproduct trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 21.32 Inflation and deflation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 21.33 Factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 22 nmod mat 187 22.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 22.2 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 22.3 Basic properties and manipulation . . . . . . . . . . . . . . . . . . . . . 188 Contents vii 22.4 Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 22.5 Random matrix generation . . . . . . . . . . . . . . . . . . . . . . . . . 188 22.6 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 22.7 Transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 22.8 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 189 22.9 Matrix-scalar arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 22.10 Matrix multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 22.11 Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 22.12 Determinant and rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 22.13 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 22.14 Triangular solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 22.15 Nonsingular square solving . . . . . . . . . . . . . . . . . . . . . . . . . 192 22.16 LU decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 22.17 Reduced row echelon form . . . . . . . . . . . . . . . . . . . . . . . . . . 192 22.18 Nullspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 23 nmod poly mat 195 23.1 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 23.2 Basic properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 23.3 Basic assignment and manipulation . . . . . . . . . . . . . . . . . . . . . 196 23.4 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 23.5 Random matrix generation . . . . . . . . . . . . . . . . . . . . . . . . . 196 23.6 Special matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 23.7 Basic comparison and properties . . . . . . . . . . . . . . . . . . . . . . 197 23.8 Norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 23.9 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 23.10 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 23.11 Row reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 23.12 Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 23.13 Determinant and rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 23.14 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 23.15 Nullspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 23.16 Solving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 24 fmpz mod poly 203 24.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 24.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 24.3 Definition of the fmpz mod poly t type . . . . . . . . . . . . . . . . . . 204 24.4 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 24.5 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 24.6 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 24.7 Assignment and swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 24.8 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 24.9 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 24.10 Getting and setting coefficients . . . . . . . . . . . . . . . . . . . . . . . 206 24.11 Shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 24.12 Addition and subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 207 24.13 Scalar multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 24.14 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 24.15 Powering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 24.16 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 24.17 Power series inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 24.18 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 211 24.19 Derivative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 viii Contents 24.20 Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 24.21 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 24.22 Radix conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 24.23 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 25 padic 219 25.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 25.2 Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 25.3 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 25.4 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 25.5 Randomisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 25.6 Assignments and conversions . . . . . . . . . . . . . . . . . . . . . . . . 221 25.7 Arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 25.8 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 25.9 Special functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 25.10 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 26 arith 231 26.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 26.2 Primorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 26.3 Harmonic numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 26.4 Stirling numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 26.5 Bell numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 26.6 Bernoulli numbers and polynomials . . . . . . . . . . . . . . . . . . . . . 234 26.7 Euler numbers and polynomials . . . . . . . . . . . . . . . . . . . . . . . 236 26.8 Legendre polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 26.9 Multiplicative functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 26.10 Cyclotomic polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 26.11 Swinnerton-Dyer polynomials . . . . . . . . . . . . . . . . . . . . . . . . 239 26.12 Landau’s function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 26.13 Dedekind sums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 26.14 Number of partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 26.15 Sums of squares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 26.16 MPFR extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 27 ulong extras 245 27.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 27.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 27.3 Random functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 27.4 Basic arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 27.5 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 27.6 Basic arithmetic with precomputed inverses . . . . . . . . . . . . . . . . 247 27.7 Greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 249 27.8 Jacobi and Kronecker symbols . . . . . . . . . . . . . . . . . . . . . . . 250 27.9 Modular Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 27.10 Prime number generation and counting . . . . . . . . . . . . . . . . . . 252 27.11 Primality testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 27.12 Square root and perfect power testing . . . . . . . . . . . . . . . . . . . 255 27.13 Factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 27.14 Arithmetic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 27.15 Factorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 28 long extras 261 28.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 28.2 Random functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Contents ix 29 fft 263 29.1 Split/combine FFT coefficients . . . . . . . . . . . . . . . . . . . . . . . 263 29.2 Test helper functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 29.3 Arithmetic modulo a generalised Fermat number . . . . . . . . . . . . . 264 29.4 Generic butterflies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 29.5 Radix 2 transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 29.6 Matrix Fourier Transforms. . . . . . . . . . . . . . . . . . . . . . . . . . 268 29.7 Negacyclic multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . 270 29.8 Integer multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 29.9 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 30 qsieve 273 30.1 Quadratic sieve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 31 longlong.h 275 31.1 Auxiliary asm macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 32 mpn extras 277 32.1 Macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 32.2 Utility functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 32.3 Divisibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 32.4 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 32.5 GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 32.6 Special numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 33 profiler 279 33.1 Timer based on the cycle counter . . . . . . . . . . . . . . . . . . . . . . 279 33.2 Framework for repeatedly sampling a single target . . . . . . . . . . . . 280 34 interfaces 281 34.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 34.2 NTL Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 References 283

Description:
FLINT. Fast Library for Number Theory. Version 2.3.0. 1 July 2012 Craig Citro, Timothy Abbot, Carl Witty, Jaap Spies, Kiran Kedlaya, William Stein,.
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.