test_context.txt
1 Test context handling 2 --------------------- 3 4 >>> import gmpy2 5 >>> from gmpy2 import mpfr,mpc,get_context,set_context,ieee,context,local_context 6 7 Test ieee() 8 ----------- 9 10 >>> ieee(32) 11 context(precision=24, real_prec=Default, imag_prec=Default, 12 round=RoundToNearest, real_round=Default, imag_round=Default, 13 emax=128, emin=-148, 14 subnormalize=True, 15 trap_underflow=False, underflow=False, 16 trap_overflow=False, overflow=False, 17 trap_inexact=False, inexact=False, 18 trap_invalid=False, invalid=False, 19 trap_erange=False, erange=False, 20 trap_divzero=False, divzero=False, 21 allow_complex=False, 22 rational_division=False) 23 >>> ieee(64) 24 context(precision=53, real_prec=Default, imag_prec=Default, 25 round=RoundToNearest, real_round=Default, imag_round=Default, 26 emax=1024, emin=-1073, 27 subnormalize=True, 28 trap_underflow=False, underflow=False, 29 trap_overflow=False, overflow=False, 30 trap_inexact=False, inexact=False, 31 trap_invalid=False, invalid=False, 32 trap_erange=False, erange=False, 33 trap_divzero=False, divzero=False, 34 allow_complex=False, 35 rational_division=False) 36 >>> ieee(128) 37 context(precision=113, real_prec=Default, imag_prec=Default, 38 round=RoundToNearest, real_round=Default, imag_round=Default, 39 emax=16384, emin=-16493, 40 subnormalize=True, 41 trap_underflow=False, underflow=False, 42 trap_overflow=False, overflow=False, 43 trap_inexact=False, inexact=False, 44 trap_invalid=False, invalid=False, 45 trap_erange=False, erange=False, 46 trap_divzero=False, divzero=False, 47 allow_complex=False, 48 rational_division=False) 49 >>> gmpy2.ieee(256) 50 context(precision=237, real_prec=Default, imag_prec=Default, 51 round=RoundToNearest, real_round=Default, imag_round=Default, 52 emax=262144, emin=-262377, 53 subnormalize=True, 54 trap_underflow=False, underflow=False, 55 trap_overflow=False, overflow=False, 56 trap_inexact=False, inexact=False, 57 trap_invalid=False, invalid=False, 58 trap_erange=False, erange=False, 59 trap_divzero=False, divzero=False, 60 allow_complex=False, 61 rational_division=False) 62 >>> gmpy2.ieee(-1) 63 Traceback (most recent call last): 64 File "<stdin>", line 1, in <module> 65 ValueError: bitwidth must be 16, 32, 64, 128; or must be greater than 128 and divisible by 32. 66 >>> gmpy2.ieee("a") 67 Traceback (most recent call last): 68 File "<stdin>", line 1, in <module> 69 TypeError: ieee() requires 'int' argument 70 >>> set_context(ieee(32)) 71 >>> gmpy2.const_pi().digits(2) 72 ('110010010000111111011011', 2, 24) 73 >>> set_context(ieee(64)) 74 >>> gmpy2.const_pi().digits(2) 75 ('11001001000011111101101010100010001000010110100011000', 2, 53) 76 >>> set_context(ieee(128)) 77 >>> gmpy2.const_pi().digits(2) 78 ('11001001000011111101101010100010001000010110100011000010001101001100010011000110011000101000101110000000110111000', 2, 113) 79 80 Test context() 81 -------------- 82 83 >>> context() 84 context(precision=53, real_prec=Default, imag_prec=Default, 85 round=RoundToNearest, real_round=Default, imag_round=Default, 86 emax=1073741823, emin=-1073741823, 87 subnormalize=False, 88 trap_underflow=False, underflow=False, 89 trap_overflow=False, overflow=False, 90 trap_inexact=False, inexact=False, 91 trap_invalid=False, invalid=False, 92 trap_erange=False, erange=False, 93 trap_divzero=False, divzero=False, 94 allow_complex=False, 95 rational_division=False) 96 >>> context(precision=100) 97 context(precision=100, real_prec=Default, imag_prec=Default, 98 round=RoundToNearest, real_round=Default, imag_round=Default, 99 emax=1073741823, emin=-1073741823, 100 subnormalize=False, 101 trap_underflow=False, underflow=False, 102 trap_overflow=False, overflow=False, 103 trap_inexact=False, inexact=False, 104 trap_invalid=False, invalid=False, 105 trap_erange=False, erange=False, 106 trap_divzero=False, divzero=False, 107 allow_complex=False, 108 rational_division=False) 109 >>> context(real_prec=100) 110 context(precision=53, real_prec=100, imag_prec=Default, 111 round=RoundToNearest, real_round=Default, imag_round=Default, 112 emax=1073741823, emin=-1073741823, 113 subnormalize=False, 114 trap_underflow=False, underflow=False, 115 trap_overflow=False, overflow=False, 116 trap_inexact=False, inexact=False, 117 trap_invalid=False, invalid=False, 118 trap_erange=False, erange=False, 119 trap_divzero=False, divzero=False, 120 allow_complex=False, 121 rational_division=False) 122 >>> context(real_prec=100,imag_prec=200) 123 context(precision=53, real_prec=100, imag_prec=200, 124 round=RoundToNearest, real_round=Default, imag_round=Default, 125 emax=1073741823, emin=-1073741823, 126 subnormalize=False, 127 trap_underflow=False, underflow=False, 128 trap_overflow=False, overflow=False, 129 trap_inexact=False, inexact=False, 130 trap_invalid=False, invalid=False, 131 trap_erange=False, erange=False, 132 trap_divzero=False, divzero=False, 133 allow_complex=False, 134 rational_division=False) 135 136 Test get_context() 137 ------------------ 138 139 >>> set_context(context()) 140 >>> get_context() 141 context(precision=53, real_prec=Default, imag_prec=Default, 142 round=RoundToNearest, real_round=Default, imag_round=Default, 143 emax=1073741823, emin=-1073741823, 144 subnormalize=False, 145 trap_underflow=False, underflow=False, 146 trap_overflow=False, overflow=False, 147 trap_inexact=False, inexact=False, 148 trap_invalid=False, invalid=False, 149 trap_erange=False, erange=False, 150 trap_divzero=False, divzero=False, 151 allow_complex=False, 152 rational_division=False) 153 >>> a=get_context() 154 >>> a.precision=100 155 >>> a 156 context(precision=100, real_prec=Default, imag_prec=Default, 157 round=RoundToNearest, real_round=Default, imag_round=Default, 158 emax=1073741823, emin=-1073741823, 159 subnormalize=False, 160 trap_underflow=False, underflow=False, 161 trap_overflow=False, overflow=False, 162 trap_inexact=False, inexact=False, 163 trap_invalid=False, invalid=False, 164 trap_erange=False, erange=False, 165 trap_divzero=False, divzero=False, 166 allow_complex=False, 167 rational_division=False) 168 >>> get_context() 169 context(precision=100, real_prec=Default, imag_prec=Default, 170 round=RoundToNearest, real_round=Default, imag_round=Default, 171 emax=1073741823, emin=-1073741823, 172 subnormalize=False, 173 trap_underflow=False, underflow=False, 174 trap_overflow=False, overflow=False, 175 trap_inexact=False, inexact=False, 176 trap_invalid=False, invalid=False, 177 trap_erange=False, erange=False, 178 trap_divzero=False, divzero=False, 179 allow_complex=False, 180 rational_division=False) 181 >>> b=a.copy() 182 >>> b.precision=200 183 >>> b 184 context(precision=200, real_prec=Default, imag_prec=Default, 185 round=RoundToNearest, real_round=Default, imag_round=Default, 186 emax=1073741823, emin=-1073741823, 187 subnormalize=False, 188 trap_underflow=False, underflow=False, 189 trap_overflow=False, overflow=False, 190 trap_inexact=False, inexact=False, 191 trap_invalid=False, invalid=False, 192 trap_erange=False, erange=False, 193 trap_divzero=False, divzero=False, 194 allow_complex=False, 195 rational_division=False) 196 >>> a 197 context(precision=100, real_prec=Default, imag_prec=Default, 198 round=RoundToNearest, real_round=Default, imag_round=Default, 199 emax=1073741823, emin=-1073741823, 200 subnormalize=False, 201 trap_underflow=False, underflow=False, 202 trap_overflow=False, overflow=False, 203 trap_inexact=False, inexact=False, 204 trap_invalid=False, invalid=False, 205 trap_erange=False, erange=False, 206 trap_divzero=False, divzero=False, 207 allow_complex=False, 208 rational_division=False) 209 >>> get_context() 210 context(precision=100, real_prec=Default, imag_prec=Default, 211 round=RoundToNearest, real_round=Default, imag_round=Default, 212 emax=1073741823, emin=-1073741823, 213 subnormalize=False, 214 trap_underflow=False, underflow=False, 215 trap_overflow=False, overflow=False, 216 trap_inexact=False, inexact=False, 217 trap_invalid=False, invalid=False, 218 trap_erange=False, erange=False, 219 trap_divzero=False, divzero=False, 220 allow_complex=False, 221 rational_division=False) 222 223 Test local_context() 224 -------------------- 225 226 >>> set_context(context()) 227 >>> with local_context() as ctx: 228 ... print(ctx.precision) 229 ... ctx.precision+=20 230 ... print(ctx.precision) 231 ... 232 53 233 73 234 >>> get_context() 235 context(precision=53, real_prec=Default, imag_prec=Default, 236 round=RoundToNearest, real_round=Default, imag_round=Default, 237 emax=1073741823, emin=-1073741823, 238 subnormalize=False, 239 trap_underflow=False, underflow=False, 240 trap_overflow=False, overflow=False, 241 trap_inexact=False, inexact=False, 242 trap_invalid=False, invalid=False, 243 trap_erange=False, erange=False, 244 trap_divzero=False, divzero=False, 245 allow_complex=False, 246 rational_division=False) 247 >>> with local_context(ieee(64)) as ctx: 248 ... print(ctx) 249 ... 250 context(precision=53, real_prec=Default, imag_prec=Default, 251 round=RoundToNearest, real_round=Default, imag_round=Default, 252 emax=1024, emin=-1073, 253 subnormalize=True, 254 trap_underflow=False, underflow=False, 255 trap_overflow=False, overflow=False, 256 trap_inexact=False, inexact=False, 257 trap_invalid=False, invalid=False, 258 trap_erange=False, erange=False, 259 trap_divzero=False, divzero=False, 260 allow_complex=False, 261 rational_division=False) 262 >>> get_context() 263 context(precision=53, real_prec=Default, imag_prec=Default, 264 round=RoundToNearest, real_round=Default, imag_round=Default, 265 emax=1073741823, emin=-1073741823, 266 subnormalize=False, 267 trap_underflow=False, underflow=False, 268 trap_overflow=False, overflow=False, 269 trap_inexact=False, inexact=False, 270 trap_invalid=False, invalid=False, 271 trap_erange=False, erange=False, 272 trap_divzero=False, divzero=False, 273 allow_complex=False, 274 rational_division=False) 275 >>> with get_context() as ctx: 276 ... print(ctx.precision) 277 ... ctx.precision+=100 278 ... print(ctx.precision) 279 ... 280 53 281 153 282 >>> get_context() 283 context(precision=53, real_prec=Default, imag_prec=Default, 284 round=RoundToNearest, real_round=Default, imag_round=Default, 285 emax=1073741823, emin=-1073741823, 286 subnormalize=False, 287 trap_underflow=False, underflow=False, 288 trap_overflow=False, overflow=False, 289 trap_inexact=False, inexact=False, 290 trap_invalid=False, invalid=False, 291 trap_erange=False, erange=False, 292 trap_divzero=False, divzero=False, 293 allow_complex=False, 294 rational_division=False) 295 >>> with local_context(precision=200) as ctx: 296 ... print(ctx.precision) 297 ... ctx.precision+=100 298 ... print(ctx.precision) 299 ... 300 200 301 300 302 >>> get_context() 303 context(precision=53, real_prec=Default, imag_prec=Default, 304 round=RoundToNearest, real_round=Default, imag_round=Default, 305 emax=1073741823, emin=-1073741823, 306 subnormalize=False, 307 trap_underflow=False, underflow=False, 308 trap_overflow=False, overflow=False, 309 trap_inexact=False, inexact=False, 310 trap_invalid=False, invalid=False, 311 trap_erange=False, erange=False, 312 trap_divzero=False, divzero=False, 313 allow_complex=False, 314 rational_division=False) 315 316