arithmetic.pyi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  1. from typing import Any
  2. import numpy as np
  3. from numpy._typing import NDArray, _128Bit
  4. # Can't directly import `np.float128` as it is not available on all platforms
  5. f16: np.floating[_128Bit]
  6. c16 = np.complex128()
  7. f8 = np.float64()
  8. i8 = np.int64()
  9. u8 = np.uint64()
  10. c8 = np.complex64()
  11. f4 = np.float32()
  12. i4 = np.int32()
  13. u4 = np.uint32()
  14. dt = np.datetime64(0, "D")
  15. td = np.timedelta64(0, "D")
  16. b_ = np.bool_()
  17. b = bool()
  18. c = complex()
  19. f = float()
  20. i = int()
  21. AR_b: np.ndarray[Any, np.dtype[np.bool_]]
  22. AR_u: np.ndarray[Any, np.dtype[np.uint32]]
  23. AR_i: np.ndarray[Any, np.dtype[np.int64]]
  24. AR_f: np.ndarray[Any, np.dtype[np.float64]]
  25. AR_c: np.ndarray[Any, np.dtype[np.complex128]]
  26. AR_m: np.ndarray[Any, np.dtype[np.timedelta64]]
  27. AR_M: np.ndarray[Any, np.dtype[np.datetime64]]
  28. AR_O: np.ndarray[Any, np.dtype[np.object_]]
  29. AR_number: NDArray[np.number[Any]]
  30. AR_LIKE_b: list[bool]
  31. AR_LIKE_u: list[np.uint32]
  32. AR_LIKE_i: list[int]
  33. AR_LIKE_f: list[float]
  34. AR_LIKE_c: list[complex]
  35. AR_LIKE_m: list[np.timedelta64]
  36. AR_LIKE_M: list[np.datetime64]
  37. AR_LIKE_O: list[np.object_]
  38. # Array subtraction
  39. reveal_type(AR_number - AR_number) # E: ndarray[Any, dtype[number[Any]]]
  40. reveal_type(AR_b - AR_LIKE_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  41. reveal_type(AR_b - AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  42. reveal_type(AR_b - AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  43. reveal_type(AR_b - AR_LIKE_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  44. reveal_type(AR_b - AR_LIKE_m) # E: ndarray[Any, dtype[timedelta64]]
  45. reveal_type(AR_b - AR_LIKE_O) # E: Any
  46. reveal_type(AR_LIKE_u - AR_b) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  47. reveal_type(AR_LIKE_i - AR_b) # E: ndarray[Any, dtype[signedinteger[Any]]]
  48. reveal_type(AR_LIKE_f - AR_b) # E: ndarray[Any, dtype[floating[Any]]]
  49. reveal_type(AR_LIKE_c - AR_b) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  50. reveal_type(AR_LIKE_m - AR_b) # E: ndarray[Any, dtype[timedelta64]]
  51. reveal_type(AR_LIKE_M - AR_b) # E: ndarray[Any, dtype[datetime64]]
  52. reveal_type(AR_LIKE_O - AR_b) # E: Any
  53. reveal_type(AR_u - AR_LIKE_b) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  54. reveal_type(AR_u - AR_LIKE_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  55. reveal_type(AR_u - AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  56. reveal_type(AR_u - AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  57. reveal_type(AR_u - AR_LIKE_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  58. reveal_type(AR_u - AR_LIKE_m) # E: ndarray[Any, dtype[timedelta64]]
  59. reveal_type(AR_u - AR_LIKE_O) # E: Any
  60. reveal_type(AR_LIKE_b - AR_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  61. reveal_type(AR_LIKE_u - AR_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  62. reveal_type(AR_LIKE_i - AR_u) # E: ndarray[Any, dtype[signedinteger[Any]]]
  63. reveal_type(AR_LIKE_f - AR_u) # E: ndarray[Any, dtype[floating[Any]]]
  64. reveal_type(AR_LIKE_c - AR_u) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  65. reveal_type(AR_LIKE_m - AR_u) # E: ndarray[Any, dtype[timedelta64]]
  66. reveal_type(AR_LIKE_M - AR_u) # E: ndarray[Any, dtype[datetime64]]
  67. reveal_type(AR_LIKE_O - AR_u) # E: Any
  68. reveal_type(AR_i - AR_LIKE_b) # E: ndarray[Any, dtype[signedinteger[Any]]]
  69. reveal_type(AR_i - AR_LIKE_u) # E: ndarray[Any, dtype[signedinteger[Any]]]
  70. reveal_type(AR_i - AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  71. reveal_type(AR_i - AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  72. reveal_type(AR_i - AR_LIKE_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  73. reveal_type(AR_i - AR_LIKE_m) # E: ndarray[Any, dtype[timedelta64]]
  74. reveal_type(AR_i - AR_LIKE_O) # E: Any
  75. reveal_type(AR_LIKE_b - AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  76. reveal_type(AR_LIKE_u - AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  77. reveal_type(AR_LIKE_i - AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  78. reveal_type(AR_LIKE_f - AR_i) # E: ndarray[Any, dtype[floating[Any]]]
  79. reveal_type(AR_LIKE_c - AR_i) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  80. reveal_type(AR_LIKE_m - AR_i) # E: ndarray[Any, dtype[timedelta64]]
  81. reveal_type(AR_LIKE_M - AR_i) # E: ndarray[Any, dtype[datetime64]]
  82. reveal_type(AR_LIKE_O - AR_i) # E: Any
  83. reveal_type(AR_f - AR_LIKE_b) # E: ndarray[Any, dtype[floating[Any]]]
  84. reveal_type(AR_f - AR_LIKE_u) # E: ndarray[Any, dtype[floating[Any]]]
  85. reveal_type(AR_f - AR_LIKE_i) # E: ndarray[Any, dtype[floating[Any]]]
  86. reveal_type(AR_f - AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  87. reveal_type(AR_f - AR_LIKE_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  88. reveal_type(AR_f - AR_LIKE_O) # E: Any
  89. reveal_type(AR_LIKE_b - AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  90. reveal_type(AR_LIKE_u - AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  91. reveal_type(AR_LIKE_i - AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  92. reveal_type(AR_LIKE_f - AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  93. reveal_type(AR_LIKE_c - AR_f) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  94. reveal_type(AR_LIKE_O - AR_f) # E: Any
  95. reveal_type(AR_c - AR_LIKE_b) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  96. reveal_type(AR_c - AR_LIKE_u) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  97. reveal_type(AR_c - AR_LIKE_i) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  98. reveal_type(AR_c - AR_LIKE_f) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  99. reveal_type(AR_c - AR_LIKE_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  100. reveal_type(AR_c - AR_LIKE_O) # E: Any
  101. reveal_type(AR_LIKE_b - AR_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  102. reveal_type(AR_LIKE_u - AR_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  103. reveal_type(AR_LIKE_i - AR_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  104. reveal_type(AR_LIKE_f - AR_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  105. reveal_type(AR_LIKE_c - AR_c) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
  106. reveal_type(AR_LIKE_O - AR_c) # E: Any
  107. reveal_type(AR_m - AR_LIKE_b) # E: ndarray[Any, dtype[timedelta64]]
  108. reveal_type(AR_m - AR_LIKE_u) # E: ndarray[Any, dtype[timedelta64]]
  109. reveal_type(AR_m - AR_LIKE_i) # E: ndarray[Any, dtype[timedelta64]]
  110. reveal_type(AR_m - AR_LIKE_m) # E: ndarray[Any, dtype[timedelta64]]
  111. reveal_type(AR_m - AR_LIKE_O) # E: Any
  112. reveal_type(AR_LIKE_b - AR_m) # E: ndarray[Any, dtype[timedelta64]]
  113. reveal_type(AR_LIKE_u - AR_m) # E: ndarray[Any, dtype[timedelta64]]
  114. reveal_type(AR_LIKE_i - AR_m) # E: ndarray[Any, dtype[timedelta64]]
  115. reveal_type(AR_LIKE_m - AR_m) # E: ndarray[Any, dtype[timedelta64]]
  116. reveal_type(AR_LIKE_M - AR_m) # E: ndarray[Any, dtype[datetime64]]
  117. reveal_type(AR_LIKE_O - AR_m) # E: Any
  118. reveal_type(AR_M - AR_LIKE_b) # E: ndarray[Any, dtype[datetime64]]
  119. reveal_type(AR_M - AR_LIKE_u) # E: ndarray[Any, dtype[datetime64]]
  120. reveal_type(AR_M - AR_LIKE_i) # E: ndarray[Any, dtype[datetime64]]
  121. reveal_type(AR_M - AR_LIKE_m) # E: ndarray[Any, dtype[datetime64]]
  122. reveal_type(AR_M - AR_LIKE_M) # E: ndarray[Any, dtype[timedelta64]]
  123. reveal_type(AR_M - AR_LIKE_O) # E: Any
  124. reveal_type(AR_LIKE_M - AR_M) # E: ndarray[Any, dtype[timedelta64]]
  125. reveal_type(AR_LIKE_O - AR_M) # E: Any
  126. reveal_type(AR_O - AR_LIKE_b) # E: Any
  127. reveal_type(AR_O - AR_LIKE_u) # E: Any
  128. reveal_type(AR_O - AR_LIKE_i) # E: Any
  129. reveal_type(AR_O - AR_LIKE_f) # E: Any
  130. reveal_type(AR_O - AR_LIKE_c) # E: Any
  131. reveal_type(AR_O - AR_LIKE_m) # E: Any
  132. reveal_type(AR_O - AR_LIKE_M) # E: Any
  133. reveal_type(AR_O - AR_LIKE_O) # E: Any
  134. reveal_type(AR_LIKE_b - AR_O) # E: Any
  135. reveal_type(AR_LIKE_u - AR_O) # E: Any
  136. reveal_type(AR_LIKE_i - AR_O) # E: Any
  137. reveal_type(AR_LIKE_f - AR_O) # E: Any
  138. reveal_type(AR_LIKE_c - AR_O) # E: Any
  139. reveal_type(AR_LIKE_m - AR_O) # E: Any
  140. reveal_type(AR_LIKE_M - AR_O) # E: Any
  141. reveal_type(AR_LIKE_O - AR_O) # E: Any
  142. # Array floor division
  143. reveal_type(AR_b // AR_LIKE_b) # E: ndarray[Any, dtype[{int8}]]
  144. reveal_type(AR_b // AR_LIKE_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  145. reveal_type(AR_b // AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  146. reveal_type(AR_b // AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  147. reveal_type(AR_b // AR_LIKE_O) # E: Any
  148. reveal_type(AR_LIKE_b // AR_b) # E: ndarray[Any, dtype[{int8}]]
  149. reveal_type(AR_LIKE_u // AR_b) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  150. reveal_type(AR_LIKE_i // AR_b) # E: ndarray[Any, dtype[signedinteger[Any]]]
  151. reveal_type(AR_LIKE_f // AR_b) # E: ndarray[Any, dtype[floating[Any]]]
  152. reveal_type(AR_LIKE_O // AR_b) # E: Any
  153. reveal_type(AR_u // AR_LIKE_b) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  154. reveal_type(AR_u // AR_LIKE_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  155. reveal_type(AR_u // AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  156. reveal_type(AR_u // AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  157. reveal_type(AR_u // AR_LIKE_O) # E: Any
  158. reveal_type(AR_LIKE_b // AR_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  159. reveal_type(AR_LIKE_u // AR_u) # E: ndarray[Any, dtype[unsignedinteger[Any]]]
  160. reveal_type(AR_LIKE_i // AR_u) # E: ndarray[Any, dtype[signedinteger[Any]]]
  161. reveal_type(AR_LIKE_f // AR_u) # E: ndarray[Any, dtype[floating[Any]]]
  162. reveal_type(AR_LIKE_m // AR_u) # E: ndarray[Any, dtype[timedelta64]]
  163. reveal_type(AR_LIKE_O // AR_u) # E: Any
  164. reveal_type(AR_i // AR_LIKE_b) # E: ndarray[Any, dtype[signedinteger[Any]]]
  165. reveal_type(AR_i // AR_LIKE_u) # E: ndarray[Any, dtype[signedinteger[Any]]]
  166. reveal_type(AR_i // AR_LIKE_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  167. reveal_type(AR_i // AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  168. reveal_type(AR_i // AR_LIKE_O) # E: Any
  169. reveal_type(AR_LIKE_b // AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  170. reveal_type(AR_LIKE_u // AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  171. reveal_type(AR_LIKE_i // AR_i) # E: ndarray[Any, dtype[signedinteger[Any]]]
  172. reveal_type(AR_LIKE_f // AR_i) # E: ndarray[Any, dtype[floating[Any]]]
  173. reveal_type(AR_LIKE_m // AR_i) # E: ndarray[Any, dtype[timedelta64]]
  174. reveal_type(AR_LIKE_O // AR_i) # E: Any
  175. reveal_type(AR_f // AR_LIKE_b) # E: ndarray[Any, dtype[floating[Any]]]
  176. reveal_type(AR_f // AR_LIKE_u) # E: ndarray[Any, dtype[floating[Any]]]
  177. reveal_type(AR_f // AR_LIKE_i) # E: ndarray[Any, dtype[floating[Any]]]
  178. reveal_type(AR_f // AR_LIKE_f) # E: ndarray[Any, dtype[floating[Any]]]
  179. reveal_type(AR_f // AR_LIKE_O) # E: Any
  180. reveal_type(AR_LIKE_b // AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  181. reveal_type(AR_LIKE_u // AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  182. reveal_type(AR_LIKE_i // AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  183. reveal_type(AR_LIKE_f // AR_f) # E: ndarray[Any, dtype[floating[Any]]]
  184. reveal_type(AR_LIKE_m // AR_f) # E: ndarray[Any, dtype[timedelta64]]
  185. reveal_type(AR_LIKE_O // AR_f) # E: Any
  186. reveal_type(AR_m // AR_LIKE_u) # E: ndarray[Any, dtype[timedelta64]]
  187. reveal_type(AR_m // AR_LIKE_i) # E: ndarray[Any, dtype[timedelta64]]
  188. reveal_type(AR_m // AR_LIKE_f) # E: ndarray[Any, dtype[timedelta64]]
  189. reveal_type(AR_m // AR_LIKE_m) # E: ndarray[Any, dtype[{int64}]]
  190. reveal_type(AR_m // AR_LIKE_O) # E: Any
  191. reveal_type(AR_LIKE_m // AR_m) # E: ndarray[Any, dtype[{int64}]]
  192. reveal_type(AR_LIKE_O // AR_m) # E: Any
  193. reveal_type(AR_O // AR_LIKE_b) # E: Any
  194. reveal_type(AR_O // AR_LIKE_u) # E: Any
  195. reveal_type(AR_O // AR_LIKE_i) # E: Any
  196. reveal_type(AR_O // AR_LIKE_f) # E: Any
  197. reveal_type(AR_O // AR_LIKE_m) # E: Any
  198. reveal_type(AR_O // AR_LIKE_M) # E: Any
  199. reveal_type(AR_O // AR_LIKE_O) # E: Any
  200. reveal_type(AR_LIKE_b // AR_O) # E: Any
  201. reveal_type(AR_LIKE_u // AR_O) # E: Any
  202. reveal_type(AR_LIKE_i // AR_O) # E: Any
  203. reveal_type(AR_LIKE_f // AR_O) # E: Any
  204. reveal_type(AR_LIKE_m // AR_O) # E: Any
  205. reveal_type(AR_LIKE_M // AR_O) # E: Any
  206. reveal_type(AR_LIKE_O // AR_O) # E: Any
  207. # unary ops
  208. reveal_type(-f16) # E: {float128}
  209. reveal_type(-c16) # E: {complex128}
  210. reveal_type(-c8) # E: {complex64}
  211. reveal_type(-f8) # E: {float64}
  212. reveal_type(-f4) # E: {float32}
  213. reveal_type(-i8) # E: {int64}
  214. reveal_type(-i4) # E: {int32}
  215. reveal_type(-u8) # E: {uint64}
  216. reveal_type(-u4) # E: {uint32}
  217. reveal_type(-td) # E: timedelta64
  218. reveal_type(-AR_f) # E: Any
  219. reveal_type(+f16) # E: {float128}
  220. reveal_type(+c16) # E: {complex128}
  221. reveal_type(+c8) # E: {complex64}
  222. reveal_type(+f8) # E: {float64}
  223. reveal_type(+f4) # E: {float32}
  224. reveal_type(+i8) # E: {int64}
  225. reveal_type(+i4) # E: {int32}
  226. reveal_type(+u8) # E: {uint64}
  227. reveal_type(+u4) # E: {uint32}
  228. reveal_type(+td) # E: timedelta64
  229. reveal_type(+AR_f) # E: Any
  230. reveal_type(abs(f16)) # E: {float128}
  231. reveal_type(abs(c16)) # E: {float64}
  232. reveal_type(abs(c8)) # E: {float32}
  233. reveal_type(abs(f8)) # E: {float64}
  234. reveal_type(abs(f4)) # E: {float32}
  235. reveal_type(abs(i8)) # E: {int64}
  236. reveal_type(abs(i4)) # E: {int32}
  237. reveal_type(abs(u8)) # E: {uint64}
  238. reveal_type(abs(u4)) # E: {uint32}
  239. reveal_type(abs(td)) # E: timedelta64
  240. reveal_type(abs(b_)) # E: bool_
  241. reveal_type(abs(AR_f)) # E: Any
  242. # Time structures
  243. reveal_type(dt + td) # E: datetime64
  244. reveal_type(dt + i) # E: datetime64
  245. reveal_type(dt + i4) # E: datetime64
  246. reveal_type(dt + i8) # E: datetime64
  247. reveal_type(dt - dt) # E: timedelta64
  248. reveal_type(dt - i) # E: datetime64
  249. reveal_type(dt - i4) # E: datetime64
  250. reveal_type(dt - i8) # E: datetime64
  251. reveal_type(td + td) # E: timedelta64
  252. reveal_type(td + i) # E: timedelta64
  253. reveal_type(td + i4) # E: timedelta64
  254. reveal_type(td + i8) # E: timedelta64
  255. reveal_type(td - td) # E: timedelta64
  256. reveal_type(td - i) # E: timedelta64
  257. reveal_type(td - i4) # E: timedelta64
  258. reveal_type(td - i8) # E: timedelta64
  259. reveal_type(td / f) # E: timedelta64
  260. reveal_type(td / f4) # E: timedelta64
  261. reveal_type(td / f8) # E: timedelta64
  262. reveal_type(td / td) # E: {float64}
  263. reveal_type(td // td) # E: {int64}
  264. # boolean
  265. reveal_type(b_ / b) # E: {float64}
  266. reveal_type(b_ / b_) # E: {float64}
  267. reveal_type(b_ / i) # E: {float64}
  268. reveal_type(b_ / i8) # E: {float64}
  269. reveal_type(b_ / i4) # E: {float64}
  270. reveal_type(b_ / u8) # E: {float64}
  271. reveal_type(b_ / u4) # E: {float64}
  272. reveal_type(b_ / f) # E: {float64}
  273. reveal_type(b_ / f16) # E: {float128}
  274. reveal_type(b_ / f8) # E: {float64}
  275. reveal_type(b_ / f4) # E: {float32}
  276. reveal_type(b_ / c) # E: {complex128}
  277. reveal_type(b_ / c16) # E: {complex128}
  278. reveal_type(b_ / c8) # E: {complex64}
  279. reveal_type(b / b_) # E: {float64}
  280. reveal_type(b_ / b_) # E: {float64}
  281. reveal_type(i / b_) # E: {float64}
  282. reveal_type(i8 / b_) # E: {float64}
  283. reveal_type(i4 / b_) # E: {float64}
  284. reveal_type(u8 / b_) # E: {float64}
  285. reveal_type(u4 / b_) # E: {float64}
  286. reveal_type(f / b_) # E: {float64}
  287. reveal_type(f16 / b_) # E: {float128}
  288. reveal_type(f8 / b_) # E: {float64}
  289. reveal_type(f4 / b_) # E: {float32}
  290. reveal_type(c / b_) # E: {complex128}
  291. reveal_type(c16 / b_) # E: {complex128}
  292. reveal_type(c8 / b_) # E: {complex64}
  293. # Complex
  294. reveal_type(c16 + f16) # E: {complex256}
  295. reveal_type(c16 + c16) # E: {complex128}
  296. reveal_type(c16 + f8) # E: {complex128}
  297. reveal_type(c16 + i8) # E: {complex128}
  298. reveal_type(c16 + c8) # E: {complex128}
  299. reveal_type(c16 + f4) # E: {complex128}
  300. reveal_type(c16 + i4) # E: {complex128}
  301. reveal_type(c16 + b_) # E: {complex128}
  302. reveal_type(c16 + b) # E: {complex128}
  303. reveal_type(c16 + c) # E: {complex128}
  304. reveal_type(c16 + f) # E: {complex128}
  305. reveal_type(c16 + i) # E: {complex128}
  306. reveal_type(c16 + AR_f) # E: Any
  307. reveal_type(f16 + c16) # E: {complex256}
  308. reveal_type(c16 + c16) # E: {complex128}
  309. reveal_type(f8 + c16) # E: {complex128}
  310. reveal_type(i8 + c16) # E: {complex128}
  311. reveal_type(c8 + c16) # E: {complex128}
  312. reveal_type(f4 + c16) # E: {complex128}
  313. reveal_type(i4 + c16) # E: {complex128}
  314. reveal_type(b_ + c16) # E: {complex128}
  315. reveal_type(b + c16) # E: {complex128}
  316. reveal_type(c + c16) # E: {complex128}
  317. reveal_type(f + c16) # E: {complex128}
  318. reveal_type(i + c16) # E: {complex128}
  319. reveal_type(AR_f + c16) # E: Any
  320. reveal_type(c8 + f16) # E: {complex256}
  321. reveal_type(c8 + c16) # E: {complex128}
  322. reveal_type(c8 + f8) # E: {complex128}
  323. reveal_type(c8 + i8) # E: {complex128}
  324. reveal_type(c8 + c8) # E: {complex64}
  325. reveal_type(c8 + f4) # E: {complex64}
  326. reveal_type(c8 + i4) # E: {complex64}
  327. reveal_type(c8 + b_) # E: {complex64}
  328. reveal_type(c8 + b) # E: {complex64}
  329. reveal_type(c8 + c) # E: {complex128}
  330. reveal_type(c8 + f) # E: {complex128}
  331. reveal_type(c8 + i) # E: complexfloating[{_NBitInt}, {_NBitInt}]
  332. reveal_type(c8 + AR_f) # E: Any
  333. reveal_type(f16 + c8) # E: {complex256}
  334. reveal_type(c16 + c8) # E: {complex128}
  335. reveal_type(f8 + c8) # E: {complex128}
  336. reveal_type(i8 + c8) # E: {complex128}
  337. reveal_type(c8 + c8) # E: {complex64}
  338. reveal_type(f4 + c8) # E: {complex64}
  339. reveal_type(i4 + c8) # E: {complex64}
  340. reveal_type(b_ + c8) # E: {complex64}
  341. reveal_type(b + c8) # E: {complex64}
  342. reveal_type(c + c8) # E: {complex128}
  343. reveal_type(f + c8) # E: {complex128}
  344. reveal_type(i + c8) # E: complexfloating[{_NBitInt}, {_NBitInt}]
  345. reveal_type(AR_f + c8) # E: Any
  346. # Float
  347. reveal_type(f8 + f16) # E: {float128}
  348. reveal_type(f8 + f8) # E: {float64}
  349. reveal_type(f8 + i8) # E: {float64}
  350. reveal_type(f8 + f4) # E: {float64}
  351. reveal_type(f8 + i4) # E: {float64}
  352. reveal_type(f8 + b_) # E: {float64}
  353. reveal_type(f8 + b) # E: {float64}
  354. reveal_type(f8 + c) # E: {complex128}
  355. reveal_type(f8 + f) # E: {float64}
  356. reveal_type(f8 + i) # E: {float64}
  357. reveal_type(f8 + AR_f) # E: Any
  358. reveal_type(f16 + f8) # E: {float128}
  359. reveal_type(f8 + f8) # E: {float64}
  360. reveal_type(i8 + f8) # E: {float64}
  361. reveal_type(f4 + f8) # E: {float64}
  362. reveal_type(i4 + f8) # E: {float64}
  363. reveal_type(b_ + f8) # E: {float64}
  364. reveal_type(b + f8) # E: {float64}
  365. reveal_type(c + f8) # E: {complex128}
  366. reveal_type(f + f8) # E: {float64}
  367. reveal_type(i + f8) # E: {float64}
  368. reveal_type(AR_f + f8) # E: Any
  369. reveal_type(f4 + f16) # E: {float128}
  370. reveal_type(f4 + f8) # E: {float64}
  371. reveal_type(f4 + i8) # E: {float64}
  372. reveal_type(f4 + f4) # E: {float32}
  373. reveal_type(f4 + i4) # E: {float32}
  374. reveal_type(f4 + b_) # E: {float32}
  375. reveal_type(f4 + b) # E: {float32}
  376. reveal_type(f4 + c) # E: {complex128}
  377. reveal_type(f4 + f) # E: {float64}
  378. reveal_type(f4 + i) # E: floating[{_NBitInt}]
  379. reveal_type(f4 + AR_f) # E: Any
  380. reveal_type(f16 + f4) # E: {float128}
  381. reveal_type(f8 + f4) # E: {float64}
  382. reveal_type(i8 + f4) # E: {float64}
  383. reveal_type(f4 + f4) # E: {float32}
  384. reveal_type(i4 + f4) # E: {float32}
  385. reveal_type(b_ + f4) # E: {float32}
  386. reveal_type(b + f4) # E: {float32}
  387. reveal_type(c + f4) # E: {complex128}
  388. reveal_type(f + f4) # E: {float64}
  389. reveal_type(i + f4) # E: floating[{_NBitInt}]
  390. reveal_type(AR_f + f4) # E: Any
  391. # Int
  392. reveal_type(i8 + i8) # E: {int64}
  393. reveal_type(i8 + u8) # E: Any
  394. reveal_type(i8 + i4) # E: {int64}
  395. reveal_type(i8 + u4) # E: Any
  396. reveal_type(i8 + b_) # E: {int64}
  397. reveal_type(i8 + b) # E: {int64}
  398. reveal_type(i8 + c) # E: {complex128}
  399. reveal_type(i8 + f) # E: {float64}
  400. reveal_type(i8 + i) # E: {int64}
  401. reveal_type(i8 + AR_f) # E: Any
  402. reveal_type(u8 + u8) # E: {uint64}
  403. reveal_type(u8 + i4) # E: Any
  404. reveal_type(u8 + u4) # E: {uint64}
  405. reveal_type(u8 + b_) # E: {uint64}
  406. reveal_type(u8 + b) # E: {uint64}
  407. reveal_type(u8 + c) # E: {complex128}
  408. reveal_type(u8 + f) # E: {float64}
  409. reveal_type(u8 + i) # E: Any
  410. reveal_type(u8 + AR_f) # E: Any
  411. reveal_type(i8 + i8) # E: {int64}
  412. reveal_type(u8 + i8) # E: Any
  413. reveal_type(i4 + i8) # E: {int64}
  414. reveal_type(u4 + i8) # E: Any
  415. reveal_type(b_ + i8) # E: {int64}
  416. reveal_type(b + i8) # E: {int64}
  417. reveal_type(c + i8) # E: {complex128}
  418. reveal_type(f + i8) # E: {float64}
  419. reveal_type(i + i8) # E: {int64}
  420. reveal_type(AR_f + i8) # E: Any
  421. reveal_type(u8 + u8) # E: {uint64}
  422. reveal_type(i4 + u8) # E: Any
  423. reveal_type(u4 + u8) # E: {uint64}
  424. reveal_type(b_ + u8) # E: {uint64}
  425. reveal_type(b + u8) # E: {uint64}
  426. reveal_type(c + u8) # E: {complex128}
  427. reveal_type(f + u8) # E: {float64}
  428. reveal_type(i + u8) # E: Any
  429. reveal_type(AR_f + u8) # E: Any
  430. reveal_type(i4 + i8) # E: {int64}
  431. reveal_type(i4 + i4) # E: {int32}
  432. reveal_type(i4 + i) # E: {int_}
  433. reveal_type(i4 + b_) # E: {int32}
  434. reveal_type(i4 + b) # E: {int32}
  435. reveal_type(i4 + AR_f) # E: Any
  436. reveal_type(u4 + i8) # E: Any
  437. reveal_type(u4 + i4) # E: Any
  438. reveal_type(u4 + u8) # E: {uint64}
  439. reveal_type(u4 + u4) # E: {uint32}
  440. reveal_type(u4 + i) # E: Any
  441. reveal_type(u4 + b_) # E: {uint32}
  442. reveal_type(u4 + b) # E: {uint32}
  443. reveal_type(u4 + AR_f) # E: Any
  444. reveal_type(i8 + i4) # E: {int64}
  445. reveal_type(i4 + i4) # E: {int32}
  446. reveal_type(i + i4) # E: {int_}
  447. reveal_type(b_ + i4) # E: {int32}
  448. reveal_type(b + i4) # E: {int32}
  449. reveal_type(AR_f + i4) # E: Any
  450. reveal_type(i8 + u4) # E: Any
  451. reveal_type(i4 + u4) # E: Any
  452. reveal_type(u8 + u4) # E: {uint64}
  453. reveal_type(u4 + u4) # E: {uint32}
  454. reveal_type(b_ + u4) # E: {uint32}
  455. reveal_type(b + u4) # E: {uint32}
  456. reveal_type(i + u4) # E: Any
  457. reveal_type(AR_f + u4) # E: Any