lyken
b416ece921
core/ndstrides: implement general matmul
2024-08-26 11:18:24 +08:00
lyken
7a7a67b522
core/ndstrides: implement np_transpose() (no axes argument)
...
The IRRT implementation knows how to handle axes. But the argument is
not in NAC3 yet.
2024-08-26 11:18:23 +08:00
lyken
f37b092947
core/ndstrides: implement broadcasting & np_broadcast_to()
2024-08-26 11:18:23 +08:00
lyken
813dad4ed0
core/ndstrides: implement np_reshape()
2024-08-26 11:18:23 +08:00
lyken
b158ec80b4
core/ndstrides: implement np_array()
...
It also checks for inconsistent dimensions if the input is a list.
e.g., rejecting `[[1.0, 2.0], [3.0]]`.
2024-08-26 11:18:23 +08:00
lyken
da23bb1417
core/irrt: add List
...
Needed for implementing np_array()
2024-08-26 11:18:23 +08:00
lyken
510dbfc70e
core/ndstrides: implement ndarray indexing
...
The functionality for `...` and `np.newaxis` is there in IRRT, but there
is no implementation of them for @kernel Python expressions because of
#486 .
2024-08-26 11:18:23 +08:00
lyken
5537645395
core/irrt: add Slice and Range
...
Needed for implementing general ndarray indexing.
Currently the IRRT slice and range have nothing to do with NAC3's slice
and range.
2024-08-26 11:18:23 +08:00
lyken
f5827dae24
core/ndstrides: implement ndarray iterator NDIter
2024-08-26 11:18:23 +08:00
lyken
a531d0127a
core/ndstrides: introduce NDArray
...
NDArray with strides.
2024-08-26 11:18:23 +08:00
lyken
cf34002179
core/irrt/exceptions: allow irrt to raise exceptions
...
Achieved through defining all the needed Exception ID constants at link
time.
Secondly, since `Exception` is `size_t` dependent, `__nac3_raise()`
takes an opaque pointer to `Exception`.
2024-08-26 09:38:56 +08:00
lyken
e9629a6688
core/irrt: split irrt.cpp into headers
2024-08-26 09:35:06 +08:00
lyken
331ab8a946
core/irrt: reformat
2024-08-26 09:35:00 +08:00
lyken
8f726ecbfa
core/irrt: comment build.rs & move irrt to nac3core/irrt
2024-08-26 09:34:27 +08:00