Commit Graph

10 Commits

Author SHA1 Message Date
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