Arb Documentation Release 2.8.0
Total Page:16
File Type:pdf, Size:1020Kb
ζ(s) Arb Arb Documentation Release 2.8.0 Fredrik Johansson December 29, 2015 CONTENTS 1 Introduction 1 2 General information 3 2.1 Feature overview.............................................3 2.2 Setup...................................................4 2.2.1 Download............................................4 2.2.2 Dependencies..........................................4 2.2.3 Installation as part of FLINT..................................4 2.2.4 Standalone installation.....................................4 2.2.5 Running code..........................................5 2.3 Potential issues..............................................5 2.3.1 Interface changes........................................5 2.3.2 Correctness...........................................5 2.3.3 Aliasing.............................................6 2.3.4 Integer overflow.........................................6 2.3.5 Thread safety and caches....................................7 2.3.6 Use of hardware floating-point arithmetic...........................7 2.4 History and changes...........................................8 2.5 Example programs............................................ 20 2.5.1 pi.c............................................... 21 2.5.2 hilbert_matrix.c......................................... 21 2.5.3 keiper_li.c............................................ 21 2.5.4 real_roots.c........................................... 22 2.5.5 poly_roots.c........................................... 25 2.5.6 complex_plot.c......................................... 26 3 Module documentation (Arb 2.x types) 29 3.1 mag.h – fixed-precision unsigned floating-point numbers for bounds................. 29 3.1.1 Types, macros and constants.................................. 29 3.1.2 Memory management...................................... 29 3.1.3 Special values.......................................... 30 3.1.4 Comparisons.......................................... 30 3.1.5 Input and output......................................... 30 3.1.6 Random generation....................................... 30 3.1.7 Conversions........................................... 31 3.1.8 Arithmetic............................................ 31 3.1.9 Fast, unsafe arithmetic..................................... 32 3.1.10 Powers and logarithms..................................... 32 3.1.11 Special functions........................................ 33 3.2 arf.h – arbitrary-precision floating-point numbers............................ 34 3.2.1 Types, macros and constants.................................. 34 i 3.2.2 Memory management...................................... 35 3.2.3 Special values.......................................... 35 3.2.4 Assignment, rounding and conversions............................. 36 3.2.5 Comparisons and bounds.................................... 37 3.2.6 Magnitude functions...................................... 38 3.2.7 Shallow assignment....................................... 38 3.2.8 Random number generation.................................. 39 3.2.9 Input and output......................................... 39 3.2.10 Addition and multiplication................................... 39 3.2.11 Summation........................................... 40 3.2.12 Division............................................. 41 3.2.13 Square roots........................................... 41 3.2.14 Complex arithmetic....................................... 41 3.3 arb.h – real numbers represented as floating-point balls........................ 42 3.3.1 Types, macros and constants.................................. 42 3.3.2 Memory management...................................... 43 3.3.3 Assignment and rounding.................................... 43 3.3.4 Assignment of special values.................................. 44 3.3.5 Input and output......................................... 44 3.3.6 Random number generation.................................. 45 3.3.7 Radius and interval operations................................. 45 3.3.8 Comparisons.......................................... 47 3.3.9 Arithmetic............................................ 48 3.3.10 Powers and roots........................................ 50 3.3.11 Exponentials and logarithms.................................. 51 3.3.12 Trigonometric functions.................................... 51 3.3.13 Inverse trigonometric functions................................. 52 3.3.14 Hyperbolic functions...................................... 52 3.3.15 Inverse hyperbolic functions.................................. 53 3.3.16 Constants............................................ 53 3.3.17 Gamma function and factorials................................. 54 3.3.18 Zeta function.......................................... 55 3.3.19 Bernoulli numbers....................................... 56 3.3.20 Polylogarithms......................................... 56 3.3.21 Other special functions..................................... 56 3.3.22 Internals for computing elementary functions......................... 57 3.3.23 Vector functions......................................... 59 3.4 arb_poly.h – polynomials over the real numbers............................ 60 3.4.1 Types, macros and constants.................................. 60 3.4.2 Memory management...................................... 60 3.4.3 Basic manipulation....................................... 60 3.4.4 Conversions........................................... 61 3.4.5 Input and output......................................... 61 3.4.6 Random generation....................................... 61 3.4.7 Comparisons.......................................... 62 3.4.8 Bounds............................................. 62 3.4.9 Arithmetic............................................ 62 3.4.10 Composition.......................................... 64 3.4.11 Evaluation............................................ 65 3.4.12 Product trees.......................................... 66 3.4.13 Multipoint evaluation...................................... 66 3.4.14 Interpolation.......................................... 67 3.4.15 Differentiation......................................... 67 3.4.16 Transforms........................................... 67 ii 3.4.17 Powers and elementary functions................................ 68 3.4.18 Gamma function and factorials................................. 71 3.4.19 Zeta function.......................................... 71 3.4.20 Root-finding........................................... 72 3.4.21 Other special polynomials................................... 73 3.5 arb_mat.h – matrices over the real numbers.............................. 73 3.5.1 Types, macros and constants.................................. 73 3.5.2 Memory management...................................... 74 3.5.3 Conversions........................................... 74 3.5.4 Random generation....................................... 74 3.5.5 Input and output......................................... 74 3.5.6 Comparisons.......................................... 74 3.5.7 Special matrices......................................... 75 3.5.8 Transpose............................................ 75 3.5.9 Norms.............................................. 75 3.5.10 Arithmetic............................................ 75 3.5.11 Scalar arithmetic........................................ 76 3.5.12 Gaussian elimination and solving................................ 76 3.5.13 Characteristic polynomial.................................... 77 3.5.14 Special functions........................................ 77 3.6 arb_calc.h – calculus with real-valued functions............................ 77 3.6.1 Types, macros and constants.................................. 78 3.6.2 Debugging........................................... 78 3.6.3 Subdivision-based root finding................................. 78 3.6.4 Newton-based root finding................................... 80 3.7 acb.h – complex numbers........................................ 80 3.7.1 Types, macros and constants.................................. 81 3.7.2 Memory management...................................... 81 3.7.3 Basic manipulation....................................... 81 3.7.4 Input and output......................................... 82 3.7.5 Random number generation.................................. 82 3.7.6 Precision and comparisons................................... 83 3.7.7 Complex parts.......................................... 84 3.7.8 Arithmetic............................................ 84 3.7.9 Mathematical constants..................................... 85 3.7.10 Powers and roots........................................ 86 3.7.11 Exponentials and logarithms.................................. 86 3.7.12 Trigonometric functions.................................... 86 3.7.13 Inverse trigonometric functions................................. 87 3.7.14 Hyperbolic functions...................................... 87 3.7.15 Inverse hyperbolic functions.................................. 87 3.7.16 Rising factorials......................................... 88 3.7.17 Gamma function........................................ 88 3.7.18 Zeta function.......................................... 89 3.7.19 Polylogarithms......................................... 90 3.7.20 Arithmetic-geometric mean................................... 90 3.7.21 Other special functions..................................... 90 3.7.22 Vector functions......................................... 90 3.8 acb_poly.h – polynomials