5c8a1d5f2f
[core] codegen/ndarray: Implement subscript assignment
...
Based on 5bed394e
: core/ndstrides: implement subscript assignment
Overlapping is not handled. Currently it has undefined behavior.
2024-12-24 15:34:02 +08:00
d1bf5085a6
[core] codegen/ndarray: Implement np_transpose without axes argument
...
Based on 052b67c8
: 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-12-24 15:32:58 +08:00
32e1d55de9
[core] codegen/ndarray: Reimplement broadcasting
...
Based on 9359ed96
: core/ndstrides: implement broadcasting &
np_broadcast_to()
2024-12-24 15:32:32 +08:00
936749ae5f
[core] codegen/ndarray: Implement np_reshape
...
Based on 926e7e93
: core/ndstrides: implement np_reshape()
2024-12-24 15:21:25 +08:00
297078ed61
[core] toplevel: Add view functions category
...
Based on 9e0f636d
: core: categorize np_{transpose,reshape} as 'view
functions'
2024-12-24 15:21:04 +08:00
c7192f861b
[core] toplevel: Implement np_size
...
Based on 2c1030d1
: core/ndstrides: implement np_size()
2024-12-24 15:21:00 +08:00
694265ed6d
[core] codegen/ndarray: Implement np_{shape,strides}
...
Based on 40c24486
: core/ndstrides: implement np_shape() and np_strides()
These functions are not important, but they are handy for debugging.
`np.strides()` is not an actual NumPy function, but `ndarray.strides` is
used.
2024-12-24 15:20:30 +08:00
a00eb7969e
[core] codegen: Implement matrix_power
...
Last of the functions that need to be ported over to strided-ndarray.
2024-12-13 15:23:31 +08:00
e4bd376587
[core] codegen: Implement ContiguousNDArray
...
Fixes compatibility with linalg algorithms. matrix_power is missing due
to the need for indexing support.
2024-12-13 15:23:29 +08:00
08a7d01a13
[core] Add itemsize and strides to NDArray struct
...
Temporarily disable linalg ndarray tests as they are not ported to work
with strided-ndarray.
2024-12-13 15:22:09 +08:00
d484d44d95
[standalone] linalg: Fix function name in error message
2024-12-09 12:09:57 +08:00
c58ce9c3a9
[core] codegen/types: Implement NDArray in terms of i8*
...
Better aligns with the future implementation of ndstrides.
2024-11-21 14:27:00 +08:00
5839badadd
[standalone] Update globals.py with type-inferred global var
2024-10-07 20:44:08 +08:00
581b2f7bb2
[standalone] Add demo for global variables
2024-10-04 13:24:30 +08:00
3e92c491f5
[standalone] Add tests creating ndarrays with tuple dims
2024-09-11 15:52:43 +08:00
59cad5bfe1
standalone: clang-format demo.c
2024-08-29 10:37:24 +08:00
4318f8de84
standalone: improve src/assignment.py
2024-08-29 10:33:58 +08:00
600a5c8679
Revert "standalone: reformat demo.c"
...
This reverts commit 308edb8237
.
2024-08-27 23:06:49 +08:00
308edb8237
standalone: reformat demo.c
2024-08-27 22:55:22 +08:00
15e62f467e
standalone: add tests for polymorphism
2024-08-26 18:37:55 +08:00
c5ae0e7c36
[standalone] Add tests for tuple equality
2024-08-21 16:25:32 +08:00
b8dab6cf7c
[standalone] Add tests for string equality
2024-08-21 16:25:32 +08:00
8532bf5206
standalone: add missing test_ndarray_ceil() run
2024-08-21 11:39:00 +08:00
b3891b9a0d
standalone: Fix several issues post script refactoring
...
- Add helptext for check_demos.sh
- Add back support for using debug NAC3 for running tests
- Output error message when argument is not recognized
- Fixed last non-demo script argument being ignored
- Add back SSE2 requirement to NAC3 (required for mandelbrot)
2024-08-13 15:19:03 +08:00
d0da688aa7
standalone: Add tuple len test
2024-08-13 15:02:59 +08:00
ac0d83ef98
standalone: Add vararg.py
2024-08-06 11:48:42 +08:00
fb9fe8edf2
core: reimplement assignment type inference and codegen
...
- distinguish between setitem and getitem
- allow starred assignment targets, but the assigned value would be a tuple
- allow both [...] and (...) to be target lists
2024-08-05 19:30:48 +08:00
669c6aca6b
clean up and fix 32-bit demos
2024-08-05 19:04:25 +08:00
63d2b49b09
core: remove np_linalg_matmul
2024-08-05 11:44:55 +08:00
bf709889c4
standalone/demo: separate linalg functions from main workspace
2024-08-05 11:44:54 +08:00
1c72698d02
core: add np_linalg_det and np_linalg_matrix_power functions
2024-07-31 18:02:54 +08:00
54f883f0a5
core: implement np_dot using LLVM_IR
2024-07-31 15:53:51 +08:00
4a6845dac6
standalone: add np.transpose and np.reshape functions
2024-07-31 13:23:07 +08:00
17171065b1
standalone: link linalg at runtime
2024-07-31 13:23:07 +08:00
540b35ec84
standalone: move linalg functions to demo
2024-07-31 13:23:05 +08:00
d6a4d0a634
standalone: add linalg methods and tests
2024-07-29 16:48:06 +08:00
318a675ea6
standalone: Rename -m32 to -i386
2024-07-29 14:58:58 +08:00
32e52ce198
standalone: Revert using uint32_t as slice length
...
Turns out list and str have always been size_t.
2024-07-29 14:58:29 +08:00
8c5ba37d09
standalone: Add 32-bit execution tests to check_demo.sh
2024-07-26 13:35:40 +08:00
3d3c258756
standalone: Remove support for --lli
2024-07-26 13:32:38 +08:00
ed1182cb24
standalone: Update format specifiers for exceptions
...
Use platform-agnostic identifiers instead.
2024-07-26 13:32:37 +08:00
fd025c1137
standalone: Use uint32_t for cslice length
...
Matching the expected type of string and list slices.
2024-07-26 13:32:21 +08:00
44487b76ae
standalone: interpret_demo.py remove duplicated section
2024-07-22 17:23:35 +08:00
1332f113e8
standalone: fix interpret_demo.py comments
2024-07-22 17:06:14 +08:00
1a31a50b8a
standalone: fix __nac3_raise def in demo.c
2024-07-17 21:22:08 +08:00
c80378063a
add np_argmin/argmax to interpret_demo environment
2024-07-12 13:27:52 +02:00
45e9360c4d
standalone: Add np_argmax and np_argmin tests
2024-07-12 18:19:56 +08:00
f47cdec650
standalone: Fix output format of output_range
2024-07-09 13:55:48 +08:00
d656880e44
standalone: Fix missing implementation for output_range
2024-07-09 13:53:50 +08:00
25d2de67f7
standalone: Add output_range and tests
2024-07-09 04:44:40 +08:00