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
da23bb1417
core/irrt: add List
...
Needed for implementing np_array()
2024-08-26 11:18:23 +08:00
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
M-Labs/nac3#486 .
2024-08-26 11:18:23 +08:00
fda7f8d827
core/irrt: rename NDIndex to NDIndexInt
...
The name `NDIndex` is used in later commits.
2024-08-26 11:18:23 +08:00
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
f5827dae24
core/ndstrides: implement ndarray iterator NDIter
2024-08-26 11:18:23 +08:00
a531d0127a
core/ndstrides: introduce NDArray
...
NDArray with strides.
2024-08-26 11:18:23 +08:00
f169d37074
core/irrt/exceptions: add debug utils with exceptions
2024-08-26 09:39:41 +08:00
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
e9629a6688
core/irrt: split irrt.cpp into headers
2024-08-26 09:35:06 +08:00