gstaichi 0.1.25.dev0__cp310-cp310-macosx_15_0_arm64.whl → 2.0.0__cp310-cp310-macosx_15_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. gstaichi/CHANGELOG.md +6 -0
  2. gstaichi/__init__.py +1 -1
  3. gstaichi/_lib/core/gstaichi_python.cpython-310-darwin.so +0 -0
  4. gstaichi/_lib/core/gstaichi_python.pyi +11 -41
  5. gstaichi/_test_tools/__init__.py +18 -0
  6. gstaichi/_test_tools/dataclass_test_tools.py +36 -0
  7. gstaichi/_test_tools/textwrap2.py +6 -0
  8. gstaichi/_version.py +1 -1
  9. gstaichi/examples/minimal.py +1 -1
  10. gstaichi/lang/__init__.py +1 -1
  11. gstaichi/lang/_dataclass_util.py +31 -0
  12. gstaichi/lang/_fast_caching/__init__.py +3 -0
  13. gstaichi/lang/_fast_caching/args_hasher.py +110 -0
  14. gstaichi/lang/_fast_caching/config_hasher.py +30 -0
  15. gstaichi/lang/_fast_caching/fast_caching_types.py +21 -0
  16. gstaichi/lang/_fast_caching/function_hasher.py +57 -0
  17. gstaichi/lang/_fast_caching/hash_utils.py +11 -0
  18. gstaichi/lang/_fast_caching/python_side_cache.py +52 -0
  19. gstaichi/lang/_fast_caching/src_hasher.py +75 -0
  20. gstaichi/lang/_kernel_impl_dataclass.py +212 -0
  21. gstaichi/lang/_template_mapper.py +16 -20
  22. gstaichi/lang/_wrap_inspect.py +27 -1
  23. gstaichi/lang/ast/ast_transformer.py +7 -2
  24. gstaichi/lang/ast/ast_transformer_utils.py +18 -13
  25. gstaichi/lang/ast/ast_transformers/call_transformer.py +73 -16
  26. gstaichi/lang/ast/ast_transformers/function_def_transformer.py +102 -118
  27. gstaichi/lang/field.py +0 -38
  28. gstaichi/lang/impl.py +25 -24
  29. gstaichi/lang/kernel_arguments.py +28 -30
  30. gstaichi/lang/kernel_impl.py +154 -200
  31. gstaichi/lang/matrix.py +0 -46
  32. gstaichi/lang/struct.py +0 -45
  33. gstaichi/lang/util.py +11 -80
  34. gstaichi/types/annotations.py +10 -5
  35. gstaichi/types/compound_types.py +1 -20
  36. gstaichi/types/ndarray_type.py +31 -11
  37. gstaichi/types/utils.py +0 -2
  38. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/METADATA +2 -1
  39. gstaichi-2.0.0.dist-info/RECORD +177 -0
  40. gstaichi/__main__.py +0 -5
  41. gstaichi/_main.py +0 -545
  42. gstaichi/lang/argpack.py +0 -411
  43. gstaichi-0.1.25.dev0.dist-info/RECORD +0 -168
  44. gstaichi-0.1.25.dev0.dist-info/entry_points.txt +0 -2
  45. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/GLFW/glfw3.h +0 -0
  46. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/GLFW/glfw3native.h +0 -0
  47. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/instrument.hpp +0 -0
  48. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.h +0 -0
  49. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.hpp +0 -0
  50. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/linker.hpp +0 -0
  51. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/optimizer.hpp +0 -0
  52. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/GLSL.std.450.h +0 -0
  53. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv.h +0 -0
  54. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv.hpp +0 -0
  55. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cfg.hpp +0 -0
  56. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_common.hpp +0 -0
  57. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cpp.hpp +0 -0
  58. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross.hpp +0 -0
  59. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_c.h +0 -0
  60. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_containers.hpp +0 -0
  61. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_error_handling.hpp +0 -0
  62. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_parsed_ir.hpp +0 -0
  63. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_cross_util.hpp +0 -0
  64. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_glsl.hpp +0 -0
  65. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_hlsl.hpp +0 -0
  66. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_msl.hpp +0 -0
  67. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_parser.hpp +0 -0
  68. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv_cross/spirv_reflect.hpp +0 -0
  69. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake +0 -0
  70. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget-release.cmake +0 -0
  71. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake +0 -0
  72. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffConfig.cmake +0 -0
  73. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets-release.cmake +0 -0
  74. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets.cmake +0 -0
  75. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkConfig.cmake +0 -0
  76. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets-release.cmake +0 -0
  77. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets.cmake +0 -0
  78. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintConfig.cmake +0 -0
  79. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets-release.cmake +0 -0
  80. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets.cmake +0 -0
  81. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optConfig.cmake +0 -0
  82. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets-release.cmake +0 -0
  83. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake +0 -0
  84. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceConfig.cmake +0 -0
  85. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget-release.cmake +0 -0
  86. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget.cmake +0 -0
  87. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Config.cmake +0 -0
  88. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3ConfigVersion.cmake +0 -0
  89. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Targets-release.cmake +0 -0
  90. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/cmake/glfw3/glfw3Targets.cmake +0 -0
  91. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/libSPIRV-Tools-shared.dylib +0 -0
  92. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_c/cmake/spirv_cross_cConfig-release.cmake +0 -0
  93. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_c/cmake/spirv_cross_cConfig.cmake +0 -0
  94. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig-release.cmake +0 -0
  95. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig.cmake +0 -0
  96. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig-release.cmake +0 -0
  97. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig.cmake +0 -0
  98. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig-release.cmake +0 -0
  99. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig.cmake +0 -0
  100. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig-release.cmake +0 -0
  101. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig.cmake +0 -0
  102. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig-release.cmake +0 -0
  103. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig.cmake +0 -0
  104. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig-release.cmake +0 -0
  105. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig.cmake +0 -0
  106. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig-release.cmake +0 -0
  107. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig.cmake +0 -0
  108. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/WHEEL +0 -0
  109. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/licenses/LICENSE +0 -0
  110. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/top_level.txt +0 -0
gstaichi/lang/matrix.py CHANGED
@@ -27,7 +27,6 @@ from gstaichi.lang.util import (
27
27
  in_python_scope,
28
28
  python_scope,
29
29
  to_numpy_type,
30
- to_paddle_type,
31
30
  to_pytorch_type,
32
31
  warning,
33
32
  )
@@ -1301,33 +1300,6 @@ class MatrixField(Field):
1301
1300
  runtime_ops.sync()
1302
1301
  return arr
1303
1302
 
1304
- def to_paddle(self, place=None, keep_dims=False):
1305
- """Converts the field instance to a Paddle tensor.
1306
-
1307
- Args:
1308
- place (paddle.CPUPlace()/CUDAPlace(n), optional): The desired place of returned tensor.
1309
- keep_dims (bool, optional): Whether to keep the dimension after conversion.
1310
- See :meth:`~gstaichi.lang.field.MatrixField.to_numpy` for more detailed explanation.
1311
-
1312
- Returns:
1313
- paddle.Tensor: The result paddle tensor.
1314
- """
1315
- import paddle # pylint: disable=C0415
1316
-
1317
- as_vector = self.m == 1 and not keep_dims and self.ndim == 1
1318
- shape_ext = (self.n,) if as_vector else (self.n, self.m)
1319
- # pylint: disable=E1101
1320
- # paddle.empty() doesn't support argument `place``
1321
- arr = paddle.to_tensor(
1322
- paddle.empty(self.shape + shape_ext, to_paddle_type(self.dtype)),
1323
- place=place,
1324
- )
1325
- from gstaichi._kernels import matrix_to_ext_arr # pylint: disable=C0415
1326
-
1327
- matrix_to_ext_arr(self, arr, as_vector)
1328
- runtime_ops.sync()
1329
- return arr
1330
-
1331
1303
  @python_scope
1332
1304
  def _from_external_arr(self, arr):
1333
1305
  if len(arr.shape) == len(self.shape) + 1:
@@ -1500,24 +1472,6 @@ class MatrixType(CompoundType):
1500
1472
  for j in range(self.m):
1501
1473
  set_arg_func(ret_index + (i * self.m + j,), mat[i, j])
1502
1474
 
1503
- def set_argpack_struct_args(self, mat, argpack, ret_index=()):
1504
- if self.dtype in primitive_types.integer_types:
1505
- if is_signed(cook_dtype(self.dtype)):
1506
- set_arg_func = argpack.set_arg_int
1507
- else:
1508
- set_arg_func = argpack.set_arg_uint
1509
- elif self.dtype in primitive_types.real_types:
1510
- set_arg_func = argpack.set_arg_float
1511
- else:
1512
- raise GsTaichiRuntimeTypeError(f"Invalid return type on index={ret_index}")
1513
- if self.ndim == 1:
1514
- for i in range(self.n):
1515
- set_arg_func(ret_index + (i,), mat[i])
1516
- else:
1517
- for i in range(self.n):
1518
- for j in range(self.m):
1519
- set_arg_func(ret_index + (i * self.m + j,), mat[i, j])
1520
-
1521
1475
  def _instantiate_in_python_scope(self, entries):
1522
1476
  entries = [[entries[k * self.m + i] for i in range(self.m)] for k in range(self.n)]
1523
1477
  return Matrix(
gstaichi/lang/struct.py CHANGED
@@ -528,17 +528,6 @@ class StructField(Field):
528
528
  for k, v in self._items:
529
529
  v.from_torch(array_dict[k])
530
530
 
531
- @python_scope
532
- def from_paddle(self, array_dict):
533
- """Copies the data from a set of `paddle.Tensor` into this field.
534
-
535
- The argument `array_dict` must be a dictionay-like object, it
536
- contains all the keys in this field and the copying process
537
- between corresponding items can be performed.
538
- """
539
- for k, v in self._items:
540
- v.from_paddle(array_dict[k])
541
-
542
531
  @python_scope
543
532
  def to_numpy(self):
544
533
  """Converts the Struct field instance to a dictionary of NumPy arrays.
@@ -566,22 +555,6 @@ class StructField(Field):
566
555
  """
567
556
  return {k: v.to_torch(device=device) for k, v in self._items}
568
557
 
569
- @python_scope
570
- def to_paddle(self, place=None):
571
- """Converts the Struct field instance to a dictionary of Paddle tensors.
572
-
573
- The dictionary may be nested when converting nested structs.
574
-
575
- Args:
576
- place (paddle.CPUPlace()/CUDAPlace(n), optional): The
577
- desired place of returned tensor.
578
-
579
- Returns:
580
- Dict[str, Union[paddle.Tensor, Dict]]: The result
581
- Paddle tensor.
582
- """
583
- return {k: v.to_paddle(place=place) for k, v in self._items}
584
-
585
558
  @python_scope
586
559
  def __setitem__(self, indices, element):
587
560
  self._initialize_host_accessors()
@@ -742,24 +715,6 @@ class StructType(CompoundType):
742
715
  else:
743
716
  raise GsTaichiRuntimeTypeError(f"Invalid argument type on index={ret_index + (index, )}")
744
717
 
745
- def set_argpack_struct_args(self, struct, argpack, ret_index=()):
746
- # TODO: move this to class Struct after we add dtype to Struct
747
- items = self.members.items()
748
- for index, pair in enumerate(items):
749
- name, dtype = pair
750
- if isinstance(dtype, CompoundType):
751
- dtype.set_kernel_struct_args(struct[name], argpack, ret_index + (index,))
752
- else:
753
- if dtype in primitive_types.integer_types:
754
- if is_signed(cook_dtype(dtype)):
755
- argpack.set_arg_int(ret_index + (index,), struct[name])
756
- else:
757
- argpack.set_arg_uint(ret_index + (index,), struct[name])
758
- elif dtype in primitive_types.real_types:
759
- argpack.set_arg_float(ret_index + (index,), struct[name])
760
- else:
761
- raise GsTaichiRuntimeTypeError(f"Invalid argument type on index={ret_index + (index, )}")
762
-
763
718
  def cast(self, struct):
764
719
  # sanity check members
765
720
  if self.members.keys() != struct._Struct__entries.keys():
gstaichi/lang/util.py CHANGED
@@ -1,9 +1,8 @@
1
- # type: ignore
2
-
3
1
  import functools
4
2
  import os
5
3
  import traceback
6
4
  import warnings
5
+ from typing import Any
7
6
 
8
7
  import numpy as np
9
8
  from colorama import Fore, Style
@@ -11,6 +10,7 @@ from colorama import Fore, Style
11
10
  from gstaichi._lib import core as _ti_core
12
11
  from gstaichi._logging import is_logging_effective
13
12
  from gstaichi.lang import impl
13
+ from gstaichi.types import Template
14
14
  from gstaichi.types.primitive_types import (
15
15
  f16,
16
16
  f32,
@@ -46,24 +46,6 @@ def has_pytorch():
46
46
  return _has_pytorch
47
47
 
48
48
 
49
- def has_paddle():
50
- """Whether has paddle in the current Python environment.
51
-
52
- Returns:
53
- bool: True if has paddle else False.
54
- """
55
- _has_paddle = False
56
- _env_paddle = os.environ.get("TI_ENABLE_PADDLE", "1")
57
- if not _env_paddle or int(_env_paddle):
58
- try:
59
- import paddle # pylint: disable=C0415
60
-
61
- _has_paddle = True
62
- except:
63
- pass
64
- return _has_paddle
65
-
66
-
67
49
  def get_clangpp():
68
50
  from distutils.spawn import find_executable # pylint: disable=C0415
69
51
 
@@ -183,43 +165,8 @@ def to_pytorch_type(dt):
183
165
  raise RuntimeError(f"PyTorch doesn't support {dt.to_string()} data type.")
184
166
 
185
167
 
186
- def to_paddle_type(dt):
187
- """Convert gstaichi data type to its counterpart in paddle.
188
-
189
- Args:
190
- dt (DataType): The desired data type to convert.
191
-
192
- Returns:
193
- DataType: The counterpart data type in paddle.
194
-
195
- """
196
- import paddle # pylint: disable=C0415
197
-
198
- if dt == f32:
199
- return paddle.float32
200
- if dt == f64:
201
- return paddle.float64
202
- if dt == i32:
203
- return paddle.int32
204
- if dt == i64:
205
- return paddle.int64
206
- if dt == i8:
207
- return paddle.int8
208
- if dt == i16:
209
- return paddle.int16
210
- if dt == u1:
211
- return paddle.bool
212
- if dt == u8:
213
- return paddle.uint8
214
- if dt == f16:
215
- return paddle.float16
216
- if dt in (u16, u32, u64):
217
- raise RuntimeError(f"Paddle doesn't support {dt.to_string()} data type.")
218
- assert False
219
-
220
-
221
168
  def to_gstaichi_type(dt):
222
- """Convert numpy or torch or paddle data type to its counterpart in gstaichi.
169
+ """Convert numpy or torch data type to its counterpart in gstaichi.
223
170
 
224
171
  Args:
225
172
  dt (DataType): The desired data type to convert.
@@ -289,30 +236,6 @@ def to_gstaichi_type(dt):
289
236
 
290
237
  raise RuntimeError(f"PyTorch doesn't support {dt.to_string()} data type before version 2.3.0.")
291
238
 
292
- if has_paddle():
293
- import paddle # pylint: disable=C0415
294
-
295
- if dt == paddle.float32:
296
- return f32
297
- if dt == paddle.float64:
298
- return f64
299
- if dt == paddle.int32:
300
- return i32
301
- if dt == paddle.int64:
302
- return i64
303
- if dt == paddle.int8:
304
- return i8
305
- if dt == paddle.int16:
306
- return i16
307
- if dt == paddle.bool:
308
- return u1
309
- if dt == paddle.uint8:
310
- return u8
311
- if dt == paddle.float16:
312
- return f16
313
- if dt in (u16, u32, u64):
314
- raise RuntimeError(f"Paddle doesn't support {dt.to_string()} data type.")
315
-
316
239
  raise AssertionError(f"Unknown type {dt}")
317
240
 
318
241
 
@@ -378,4 +301,12 @@ def get_traceback(stacklevel=1):
378
301
  return "".join(traceback.format_list(s))
379
302
 
380
303
 
304
+ def is_data_oriented(obj: Any) -> bool:
305
+ return getattr(obj, "_data_oriented", False)
306
+
307
+
308
+ def is_ti_template(annotation: Any) -> bool:
309
+ return annotation == Template or isinstance(annotation, Template)
310
+
311
+
381
312
  __all__ = []
@@ -1,7 +1,9 @@
1
- # type: ignore
1
+ from typing import Any, Generic, TypeVar
2
2
 
3
+ T = TypeVar("T")
3
4
 
4
- class Template:
5
+
6
+ class Template(Generic[T]):
5
7
  """Type annotation for template kernel parameter.
6
8
  Useful for passing parameters to kernels by reference.
7
9
 
@@ -30,9 +32,12 @@ class Template:
30
32
  >>> test_template(a) # will print 2
31
33
  """
32
34
 
33
- def __init__(self, tensor=None, dim=None):
34
- self.tensor = tensor
35
- self.dim = dim
35
+ def __init__(self, element_type: type[T] = object, ndim: int | None = None):
36
+ self.element_type = element_type
37
+ self.ndim = ndim
38
+
39
+ def __getitem__(self, i: Any) -> T:
40
+ raise NotImplemented
36
41
 
37
42
 
38
43
  template = Template
@@ -68,23 +68,4 @@ def struct(**kwargs):
68
68
  return gstaichi.lang.struct.StructType(**kwargs)
69
69
 
70
70
 
71
- def argpack(**kwargs):
72
- """Creates an argument pack type with given members.
73
-
74
- Args:
75
- kwargs (dict): a dictionary contains the names and types of the
76
- argument pack members.
77
-
78
- Returns:
79
- A argument pack type.
80
-
81
- Example::
82
-
83
- >>> vec3 = ti.types.vector(3, ti.f32)
84
- >>> sphere = ti.types.argpack(center=vec3, radius=float)
85
- >>> s = sphere(center=vec3([0., 0., 0.]), radius=1.0)
86
- """
87
- return gstaichi.lang.argpack.ArgPackType(**kwargs)
88
-
89
-
90
- __all__ = ["matrix", "vector", "struct", "argpack"]
71
+ __all__ = ["matrix", "vector", "struct"]
@@ -1,4 +1,4 @@
1
- # type: ignore
1
+ from typing import Any
2
2
 
3
3
  from gstaichi.types.compound_types import CompoundType, matrix, vector
4
4
  from gstaichi.types.enums import Layout, to_boundary_enum
@@ -32,7 +32,8 @@ def _make_matrix_dtype_from_element_shape(element_dim, element_shape, primitive_
32
32
  # Check dim consistency. The matrix dtype will be cooked later.
33
33
  if element_shape is not None and len(element_shape) != element_dim:
34
34
  raise ValueError(
35
- f"Both element_shape and element_dim are specified, but shape doesn't match specified dim: {len(element_shape)}!={element_dim}"
35
+ f"Both element_shape and element_dim are specified, but shape doesn't match specified dim: "
36
+ f"{len(element_shape)}!={element_dim}"
36
37
  )
37
38
  mat_dtype = vector(None, primitive_dtype) if element_dim == 1 else matrix(None, None, primitive_dtype)
38
39
  elif element_shape is not None:
@@ -50,14 +51,24 @@ class NdarrayType:
50
51
  """Type annotation for arbitrary arrays, including external arrays (numpy ndarrays and torch tensors) and GsTaichi ndarrays.
51
52
 
52
53
  For external arrays, we treat it as a GsTaichi data container with Scalar, Vector or Matrix elements.
53
- For GsTaichi vector/matrix ndarrays, we will automatically identify element dimension and their corresponding axis by the dimension of datatype, say scalars, matrices or vectors.
54
- For example, given type annotation `ti.types.ndarray(dtype=ti.math.vec3)`, a numpy array `np.zeros(10, 10, 3)` will be recognized as a 10x10 matrix composed of vec3 elements.
54
+ For GsTaichi vector/matrix ndarrays, we will automatically identify element dimension and their corresponding axis by the
55
+ dimension of datatype, say scalars, matrices or vectors.
56
+ For example, given type annotation `ti.types.ndarray(dtype=ti.math.vec3)`, a numpy array `np.zeros(10, 10, 3)` will be
57
+ recognized as a 10x10 matrix composed of vec3 elements.
55
58
 
56
59
  Args:
57
60
  dtype (Union[PrimitiveType, VectorType, MatrixType, NoneType], optional): None if not speicified.
58
- ndim (Union[Int, NoneType]): None if not specified, number of field dimensions. This argument is ignored for external arrays for now.
59
- element_dim (Union[Int, NoneType], optional): None if not specified (will be treated as 0 for external arrays), 0 if scalar elements, 1 if vector elements, and 2 if matrix elements.
60
- element_shape (Union[Tuple[Int], NoneType]): None if not specified, shapes of each element. For example, element_shape must be 1d for vector and 2d tuple for matrix. This argument is ignored for external arrays for now.
61
+ ndim (Union[Int, NoneType]): None if not specified, number of field dimensions. This argument is ignored for externa
62
+ arrays for now.
63
+ element_dim (Union[Int, NoneType], optional):
64
+ None if not specified (will be treated as 0 for external arrays),
65
+ 0 if scalar elements,
66
+ 1 if vector elements, and
67
+ 2 if matrix elements.
68
+ element_shape (Union[Tuple[Int], NoneType]):
69
+ None if not specified, shapes of each element.
70
+ For example, element_shape must be 1d for vector and 2d tuple for matrix.
71
+ This argument is ignored for external arrays for now.
61
72
  """
62
73
 
63
74
  def __init__(
@@ -93,9 +104,10 @@ class NdarrayType:
93
104
 
94
105
  # Check dtype match
95
106
  if isinstance(self.dtype, CompoundType):
96
- if not self.dtype.check_matched(ndarray_type.element_type):
107
+ if not self.dtype.check_matched(ndarray_type.element_type): # type: ignore
97
108
  raise ValueError(
98
- f"Invalid value for argument {arg_name} - required element type: {self.dtype.to_string()}, but {ndarray_type.element_type.to_string()} is provided"
109
+ f"Invalid value for argument {arg_name} - required element type: {self.dtype.to_string()}, " # type: ignore
110
+ f"but {ndarray_type.element_type.to_string()} is provided"
99
111
  )
100
112
  else:
101
113
  if self.dtype is not None:
@@ -110,14 +122,16 @@ class NdarrayType:
110
122
  # Check ndim match
111
123
  if self.ndim is not None and ndarray_type.shape is not None and self.ndim != len(ndarray_type.shape):
112
124
  raise ValueError(
113
- f"Invalid value for argument {arg_name} - required ndim={self.ndim}, but {len(ndarray_type.shape)}d ndarray with shape {ndarray_type.shape} is provided"
125
+ f"Invalid value for argument {arg_name} - required ndim={self.ndim}, but {len(ndarray_type.shape)}d "
126
+ f"ndarray with shape {ndarray_type.shape} is provided"
114
127
  )
115
128
 
116
129
  # Check needs_grad
117
130
  if self.needs_grad is not None and self.needs_grad > ndarray_type.needs_grad:
118
131
  # It's okay to pass a needs_grad=True ndarray at runtime to a need_grad=False arg but not vice versa.
119
132
  raise ValueError(
120
- f"Invalid value for argument {arg_name} - required needs_grad={self.needs_grad}, but {ndarray_type.needs_grad} is provided"
133
+ f"Invalid value for argument {arg_name} - required needs_grad={self.needs_grad}, but "
134
+ f"{ndarray_type.needs_grad} is provided"
121
135
  )
122
136
 
123
137
  def __repr__(self):
@@ -126,6 +140,12 @@ class NdarrayType:
126
140
  def __str__(self):
127
141
  return self.__repr__()
128
142
 
143
+ def __getitem__(self, i: Any) -> Any:
144
+ raise NotImplemented
145
+
146
+ def __setitem__(self, i: Any, v: Any) -> None:
147
+ raise NotImplemented
148
+
129
149
 
130
150
  ndarray = NdarrayType
131
151
  NDArray = NdarrayType
gstaichi/types/utils.py CHANGED
@@ -1,5 +1,3 @@
1
- # type: ignore
2
-
3
1
  from gstaichi._lib import core as ti_python_core
4
2
 
5
3
  is_signed = ti_python_core.is_signed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gstaichi
3
- Version: 0.1.25.dev0
3
+ Version: 2.0.0
4
4
  Summary: The GsTaichi Programming Language
5
5
  Home-page: https://github.com/Genesis-Embedded-AI/gstaichi
6
6
  Author: GsTaichi developers
@@ -23,6 +23,7 @@ License-File: LICENSE
23
23
  Requires-Dist: numpy
24
24
  Requires-Dist: colorama
25
25
  Requires-Dist: dill
26
+ Requires-Dist: pydantic
26
27
  Requires-Dist: rich
27
28
  Requires-Dist: setuptools>=68.0.0
28
29
  Requires-Dist: cffi>=1.16.0
@@ -0,0 +1,177 @@
1
+ gstaichi/CHANGELOG.md,sha256=s5PJZHpNxjiG83ZvAjrleHBMjvhI8newvYwZZg0rfi4,162
2
+ gstaichi/__init__.py,sha256=z8vnx8FS8Ct_b95YOhyNAOzmOsosUAjkYVD1UBxVElo,1004
3
+ gstaichi/_funcs.py,sha256=qH9VMUS6nN0gaRAMSmc0NBrLPGFSDyexWO9tNmz-FV0,23237
4
+ gstaichi/_kernels.py,sha256=M0xE_zhKBCeMRHsacuonGUW2D5QaggQVK-qDblGo2AI,14244
5
+ gstaichi/_logging.py,sha256=Utlv0ZjZLA3xlq80yJN8o91aD6FH8H6W3Wiyl04S8ts,3682
6
+ gstaichi/_version.py,sha256=hwOJuFUEKtsgiOt4l6op9s-hviovM6TK1uCdtRNWY4E,22
7
+ gstaichi/_version_check.py,sha256=aGUtrx_Q5U8hC5hI2ju_RIA-zzxfUfRIb1ZlU1TiL_M,3653
8
+ gstaichi/experimental.py,sha256=qNLQ6EYcDoapr3hELwXSJXECT5XrTncqv5LRF34Pfhs,343
9
+ gstaichi/_lib/__init__.py,sha256=eo5ZIaTVkv6CzHZpK6tmSgIBZNu0V9UCRhSkieXtgKA,71
10
+ gstaichi/_lib/utils.py,sha256=DQeT2jYpn06tWkwbGYq3efQfZlTpmSu_xq5mUG3vwZM,7841
11
+ gstaichi/_lib/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ gstaichi/_lib/core/gstaichi_python.cpython-310-darwin.so,sha256=kN7hw0XF_tX2_wRQpUUaHXGdt6p4YIr8SXw0dRZ6v5E,104865912
13
+ gstaichi/_lib/core/gstaichi_python.pyi,sha256=aiWud5rtyb-521nrMJsDpLo07874CNwiS5XlXl4Kttk,110444
14
+ gstaichi/_lib/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ gstaichi/_lib/runtime/libMoltenVK.dylib,sha256=bv34qLD2kzftQaZ-JZ49dxMZali6a9hh0Ak0QZBu1BQ,14024368
16
+ gstaichi/_lib/runtime/runtime_arm64.bc,sha256=NESCb2rp8mRR63Xvd0Sb_eGGq7RGjV9Aa4o8koEKf2U,147376
17
+ gstaichi/_snode/__init__.py,sha256=Vn0wolaGt5L69DCZXOs8Hwo1-_hXq_YM63AwHedYuVQ,102
18
+ gstaichi/_snode/fields_builder.py,sha256=Wz_73sJUC1CPWSxueiRb3Qdh_fEqHd1PkOpb3gGSvFM,6763
19
+ gstaichi/_snode/snode_tree.py,sha256=a1Kexuk6uoMOY9ES4zLFhOkIWkSPtXNGna9U5OZvO1s,1197
20
+ gstaichi/_test_tools/__init__.py,sha256=7tZpaFH1v4XyeFhG54xtWuY2u-iQFGbCnsRPo8hQ0wE,441
21
+ gstaichi/_test_tools/dataclass_test_tools.py,sha256=QxqrCT8ahOuI5WXgrxPi5ae5aiKt2ZB45-vtTSYukMw,1213
22
+ gstaichi/_test_tools/load_kernel_string.py,sha256=7U-oAWLfH9xYhVWHlnOUrUm2GIJ5xJqwDljneFPqU-w,1007
23
+ gstaichi/_test_tools/textwrap2.py,sha256=5LWYdy49gRKtAniLqs3LjoqWVZB2w7ccCUty7K-oY_8,180
24
+ gstaichi/ad/__init__.py,sha256=T-qo_Lq1g1U2jTN_e8bZuKxxGYQceO9FJGUgPzBhZVo,46
25
+ gstaichi/ad/_ad.py,sha256=ZW_CM_rIv4U290FBpk-NCUWdJJGR87zKx4d_7W1GdKo,19212
26
+ gstaichi/algorithms/__init__.py,sha256=jRJLdZCnqEuH6k5XLI8Q7VjnJtRkGh18Y5pd2AvqOKA,43
27
+ gstaichi/algorithms/_algorithms.py,sha256=o-Bpi77G8bSnUQuUC62lX6cDlaFBBzIQGuTwdMCYfKQ,3705
28
+ gstaichi/assets/.git,sha256=_sepXJOH-4A9o4jtu-46jG2P6XHHbsvGW3642aKNQBc,43
29
+ gstaichi/assets/Go-Regular.ttf,sha256=S7gpWTE2QWxqOezcRUguBS91rDdOZFm5r2jU-6J5OWw,134988
30
+ gstaichi/assets/static/imgs/ti_gallery.png,sha256=rOeh8JlUXb-ZdkTaei3cVyJXZBWOqcJBLdndAORUdtU,263871
31
+ gstaichi/examples/minimal.py,sha256=C03_WE8qWL20O8pVcVWrUM2w5FAaRzoKGIU6FaNxBo0,605
32
+ gstaichi/lang/__init__.py,sha256=fyvdrIYXVSFAZ1wfhbZ-rci-ehOQ-IoCBdmp1bNSDbk,1281
33
+ gstaichi/lang/_dataclass_util.py,sha256=O2WSkliHzBQKhSA8qGquPgEHeAEhKxxXQI8OZix3bNM,1091
34
+ gstaichi/lang/_kernel_impl_dataclass.py,sha256=sCRtQvQ6fu088rwsfSs9VcLgstKl8yxV5Xwk7eD5vaM,7466
35
+ gstaichi/lang/_ndarray.py,sha256=E3MMzd6D8y1N1VPmmqPSDydEmkqiJAVjFSXtcdRxYkQ,10774
36
+ gstaichi/lang/_ndrange.py,sha256=gnaA19o5ws774I0-NvfQSAjOeO9RcxWCh05TdE-jRUs,5769
37
+ gstaichi/lang/_template_mapper.py,sha256=FpQXpdGFZl-_VsWMxXvb3Czfpxgd16XQt70RWFytlhQ,9746
38
+ gstaichi/lang/_texture.py,sha256=Knohwpg3ZytOncqKz_dJt9PY4nAyMMurVrts9y8aCT0,6612
39
+ gstaichi/lang/_wrap_inspect.py,sha256=QvaLIdASfgyRsyb0HAzhs2qQ2Ni_GqATqOQsmfC3-ss,7655
40
+ gstaichi/lang/any_array.py,sha256=NvJpXq08tAVU4XNCw1npdTgUllqRA2DD-1YChKuF-yw,3292
41
+ gstaichi/lang/common_ops.py,sha256=oMpmfX3wLRWC-QYF6x1nu084zKLUd31YTPww80uslBY,8458
42
+ gstaichi/lang/exception.py,sha256=Jns3tMC5T0qHKJVNpwqag8_WOU_8caRLWGoVKcqIKFY,2085
43
+ gstaichi/lang/expr.py,sha256=uWDZeeNiyOZ03jZcEzr0MYwsc8QkcxHoeKwCu8jN9YU,6407
44
+ gstaichi/lang/field.py,sha256=cxBZis2M5-mgw94R8Y9mBLenoHeQIBJjKv8cTp_L4-8,13249
45
+ gstaichi/lang/impl.py,sha256=Swk3Wu0I-U_fyO2bv8IL12oSF6xXbjKvLNGms5ULV1I,41553
46
+ gstaichi/lang/kernel_arguments.py,sha256=E_iClhUd6Yxe3iIPMSRjH8S_MNS20XfSePR-VsJ45_Y,6331
47
+ gstaichi/lang/kernel_impl.py,sha256=5xub1Ukh7keWZotHBrI8M1tXT6gluWjM6Jh2KP3ms-o,58861
48
+ gstaichi/lang/matrix.py,sha256=gSz1MkdOvlS5PQFy0xDV-H72S_GgwI2MuN1UvtN_zZY,61927
49
+ gstaichi/lang/matrix_ops.py,sha256=msDw-IIgr6BdwW_3nCgaU-4pl_j4pYQyUb9DPPLp510,10058
50
+ gstaichi/lang/matrix_ops_utils.py,sha256=bN78mfjvuKhdIZLn0PXYljiSZSiOeMPQJzO-4LgvtJk,5245
51
+ gstaichi/lang/mesh.py,sha256=uw-GuloR55l8pH6FjRgyCjkadGYjnU44lGQZq3P9CGE,27071
52
+ gstaichi/lang/misc.py,sha256=ywmRZIQPbhSg5p7IWEdXmzt8pN54LZ8QJXi3Wr3nweo,23302
53
+ gstaichi/lang/ops.py,sha256=DepTUWLWBHia7gzNSRshd_9zb4uQH_c3uUQ8Du2nlq4,44425
54
+ gstaichi/lang/runtime_ops.py,sha256=n5g-QPu2zVrxqqEhzBXR3xP9ULvdidv2DyCaNR3TRVY,224
55
+ gstaichi/lang/shell.py,sha256=RLVp21VXnuuH7AarvmdhmkJSj5Z4jY12W510-K9fi2M,1060
56
+ gstaichi/lang/snode.py,sha256=eau1yHHi7zR6OdWhPR2hIweSptYppfw0feWLzc6CLJs,17124
57
+ gstaichi/lang/source_builder.py,sha256=IyD5ZK7g27eINvhueBaoRBd24ZWSsCc_fQccS-8mSuo,5809
58
+ gstaichi/lang/struct.py,sha256=JoNdx2tuC-2yewM6H6xbwcDo36-4TREgOqvV4LTgyPw,29250
59
+ gstaichi/lang/util.py,sha256=4aJlYyqR9M5AeLbIxexRI_OqVHSDtpU4Mx0cJDT1_9g,7429
60
+ gstaichi/lang/_fast_caching/__init__.py,sha256=1yvu4qmlzOQrYS32WKNApEiUwz39yEGLUxGHOsQSR3k,94
61
+ gstaichi/lang/_fast_caching/args_hasher.py,sha256=fs2EDlDVmRZ_XbIKIKVnj87cFqDYzKYy_KzkZ8td9lo,3972
62
+ gstaichi/lang/_fast_caching/config_hasher.py,sha256=FC4lrf_n2b_FEvfCFdPfHkQ9a9j_9M8p9Uq6hr4SDj4,956
63
+ gstaichi/lang/_fast_caching/fast_caching_types.py,sha256=FfunbciW_pveeLhstRjcYWjybBWfPvefMwwteoqawLI,640
64
+ gstaichi/lang/_fast_caching/function_hasher.py,sha256=R4uaDz7vdv4StknIpf0NIkZGffyVfLr0FW5TjJPXeOU,1783
65
+ gstaichi/lang/_fast_caching/hash_utils.py,sha256=r6dCrZR79FyP-xeWplXQ8U9y6fCHS8FBVfLnnfeMpNM,311
66
+ gstaichi/lang/_fast_caching/python_side_cache.py,sha256=aAGeXVHI-_zPuM0gGEUU7rt2sCTnNmILZqmujYAu5hg,1795
67
+ gstaichi/lang/_fast_caching/src_hasher.py,sha256=z_xlVdwdC9GsUw-8RjH1Yh6VyiqaKGL-K-5AcFSvoyw,2906
68
+ gstaichi/lang/ast/__init__.py,sha256=lMX3ghPfKtq1QPJDIPnTy_T7G9_V_5J3HUvXBKRgMLY,211
69
+ gstaichi/lang/ast/ast_transformer.py,sha256=gS-zO93wvktqJXvy5_-mglHOgaQL532i27HqPbR-58A,58423
70
+ gstaichi/lang/ast/ast_transformer_utils.py,sha256=dPJ0GfwBHwWOsOv-BUFpsnVW-BRsBj7p2d2iOQaQkQI,11660
71
+ gstaichi/lang/ast/checkers.py,sha256=vCJunwWGIuU6k6iIt67skcddDqhPNG-MRty-Tki3Uto,3800
72
+ gstaichi/lang/ast/symbol_resolver.py,sha256=8kBIBvARgZSsF-qXJ2jFVW6M-9YJ57XxRzFKp4O1ooE,1772
73
+ gstaichi/lang/ast/transform.py,sha256=8zURUELi8CzlvY0eZRiphXGd2h0FB0j2SHrS3JhenT4,266
74
+ gstaichi/lang/ast/ast_transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ gstaichi/lang/ast/ast_transformers/call_transformer.py,sha256=UERThgJAVIu2egsFC4XiUXBh5xBMr3RjOV_PsO7bIyA,13512
76
+ gstaichi/lang/ast/ast_transformers/function_def_transformer.py,sha256=-lExMEBjqlXWgKGIL6xFmPPLnvDPx9ytkdZbqKbmXLE,12250
77
+ gstaichi/lang/simt/__init__.py,sha256=zLQjw-9zUx4-etcHPN4CFORATRF3hiJEXY1Yaog3-vs,124
78
+ gstaichi/lang/simt/block.py,sha256=dvZKkdRg6s5v0ah8HyVhA18hDZa2j-OjiJl0BWI0TEw,3639
79
+ gstaichi/lang/simt/grid.py,sha256=VBYkD5YyKuoSWLfH330a8jH5DPlTEpf5DqJAiSgJjQE,140
80
+ gstaichi/lang/simt/subgroup.py,sha256=Hv_KBrdbWc-CGAtaboSaMMpSvIjscabdisvJoyeshT0,3781
81
+ gstaichi/lang/simt/warp.py,sha256=wTBY73sD-n4fIdmVrhCmRIhCF19aNDo-_033tIRkCrE,3087
82
+ gstaichi/linalg/__init__.py,sha256=ijfsC4MnlrO5CNYK8-rinLgWIRCh_N4sXwzvVY85kxM,267
83
+ gstaichi/linalg/matrixfree_cg.py,sha256=k2Mb88Q2WJARSahl0XcrPu3RUFELSHdswonZmR3J6ZE,10338
84
+ gstaichi/linalg/sparse_cg.py,sha256=uFu9HaQNcE99fq_KqEghb-5-oIAZ7eMWJrCbzHgvak8,2558
85
+ gstaichi/linalg/sparse_matrix.py,sha256=VqIDmo9B65ugGl4vVFDgQNUno2NdQnUWzu_NazurCZo,10971
86
+ gstaichi/linalg/sparse_solver.py,sha256=5Na5ITJKP1BMDxDw5OLoE4qXZJdFt6tP4f60pDt-ogY,4928
87
+ gstaichi/math/__init__.py,sha256=vtN9Hm-e6nPHbjOwS_X06A9uLakNtIXeR10vT4whATw,203
88
+ gstaichi/math/_complex.py,sha256=FRy47TDF1jQluxzS8ZNIt846IncGvlg8lycYbZvjt4k,4980
89
+ gstaichi/math/mathimpl.py,sha256=uscq5LNB4wFC8ZUpI6EYZJ0VnfnXPO4wuPmgd_2na8E,21733
90
+ gstaichi/profiler/__init__.py,sha256=rFlnpZXzcyAVZqWE_mUiAhswtxCRc_jhws-19BwMCyc,207
91
+ gstaichi/profiler/kernel_metrics.py,sha256=h2UfrtqBAIfpP-xy953YkMtfa-zHe97W7FWSoFKeWbg,7623
92
+ gstaichi/profiler/kernel_profiler.py,sha256=-6y4lwuK5GS6nNM0BFXX0zoy-vlCv6E_Q54RNKCn1pA,22276
93
+ gstaichi/profiler/memory_profiler.py,sha256=FNs5xAeFg5d28-8JyVVh2SqOy2-rUB14CiBQje4K0cQ,343
94
+ gstaichi/profiler/scoped_profiler.py,sha256=dXsvN_gmtuHepZNh6gdQIOT7t4aqS_LjqrOuYncCk-M,971
95
+ gstaichi/sparse/__init__.py,sha256=cP9BeV3d5HBgLefeZPuZkaFVSi7DZ4LEasWvPcml0L0,44
96
+ gstaichi/sparse/_sparse_grid.py,sha256=wxnOG4CVthWXJurlyPm2AwZCr9OduPqMkZzbRNmD9ZE,2432
97
+ gstaichi/tools/__init__.py,sha256=Hejqi4SgdfMyc-JunAxKUJRyrVDaVL1zAsICw-L3BF4,317
98
+ gstaichi/tools/diagnose.py,sha256=qXwyU4gXBUFDKbq3Um_-fGb6Z0qRZ2-8Hw974peOJ6c,3448
99
+ gstaichi/tools/np2ply.py,sha256=cDTdB5jUUDd9GATmKhrxpCETfwrgib2o-o0hgqzBI6Q,15271
100
+ gstaichi/tools/vtk.py,sha256=CIOcgpiyiT3-ff8kPzxh1yUiM1SyzYSBKIaYcMJ_dOQ,1032
101
+ gstaichi/types/__init__.py,sha256=OMB4V4ycYKUy_b5IDAFec7c1qgXchkmLONY00OdZbmI,602
102
+ gstaichi/types/annotations.py,sha256=qDl1hlHopsw4hhiLOy96cfoktn7_HYZ4377NwN74l6U,1166
103
+ gstaichi/types/compound_types.py,sha256=CJgTVP15qbW5Y4lSiRnktI3wj_jKH5dyd3BQYJShgPI,1882
104
+ gstaichi/types/enums.py,sha256=NZGVkk-v3s3FIMEkweXrfSRgyq8-TZGBIqGGD2uDEG8,2050
105
+ gstaichi/types/ndarray_type.py,sha256=Cnazd_4DJvLjHKFxVJY5fsoKorX4WGzmyP3EqoHnvzE,7182
106
+ gstaichi/types/primitive_types.py,sha256=ykf9vGRSOR4lDBsOLBBr6p9ZVeWtkgiF57g-usi_EgY,4067
107
+ gstaichi/types/quant.py,sha256=uuluyzfa-geNJeNi-WPPaNr7LjETqcFQC9ZtRhp2K-8,2973
108
+ gstaichi/types/texture_type.py,sha256=u1--G0XYobhPRfjHe67K6BlzltQJADWIECm75kiZ_iI,2359
109
+ gstaichi/types/utils.py,sha256=HyoePA32zqARkXboA_inDU-3Wz-tMCoUk1z-6lwlM9Y,265
110
+ gstaichi-2.0.0.data/data/include/GLFW/glfw3.h,sha256=DdoqFswVaPjMg39kIprLTCXtLAm_SL32AewOM9BYazI,234397
111
+ gstaichi-2.0.0.data/data/include/GLFW/glfw3native.h,sha256=Ii0M4bk3Q9gtdaX9py5oYXPZf3Gvg21LEN8ut_YgXDQ,18803
112
+ gstaichi-2.0.0.data/data/include/spirv-tools/instrument.hpp,sha256=ya2k9Ldn9TO_6Av24nu1IcboAqQ6F3kCWKqylc0X-Kw,11649
113
+ gstaichi-2.0.0.data/data/include/spirv-tools/libspirv.h,sha256=zK7BxuhZ9pj0VT42VaW0eN8oaO3Dqge8vutJONH-AHI,41781
114
+ gstaichi-2.0.0.data/data/include/spirv-tools/libspirv.hpp,sha256=U9p_Bp76GOvXtxZEsnODMo1Vkm8SkfXVFYtVwKCzbL8,14637
115
+ gstaichi-2.0.0.data/data/include/spirv-tools/linker.hpp,sha256=Ls3qz9nQMRSBTWfp6DMBALdpOZTPMHRG2ObIuYf6OpI,3594
116
+ gstaichi-2.0.0.data/data/include/spirv-tools/optimizer.hpp,sha256=GH1UGi40uly0Gkau9ycjXc3vdC8fglaOFk-5OiEPWaI,49090
117
+ gstaichi-2.0.0.data/data/include/spirv_cross/GLSL.std.450.h,sha256=b1bglGY_3tRDWrHT2MJNcq2zv4KDL8AC7PCg1NllQ-k,3073
118
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv.h,sha256=orhWU1eZKmCgcVJ-7Yt-zFzsRsxh8Bw4EAFw-jRZw_A,132357
119
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv.hpp,sha256=CUXuWMG_54jKz9Dt3eTwmbiIMmSF7RmIvgb0yqeq3D4,125162
120
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cfg.hpp,sha256=IbpE_IcD4w1GjIlGFu79biqlPkpQ-mNj9Q3RePJvAgQ,3827
121
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_common.hpp,sha256=hrEmJbIlQAl8n0S8RwXN2Yo_Qz4aXe-_McqaaAybP8c,47812
122
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cpp.hpp,sha256=aJ_UWlJBs_KclwL1ZqLJRn1CdI3kBy4ISdYC6uZq2gY,2637
123
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross.hpp,sha256=ToozBntAj7C5dnNDoQSymzr6F3OwrAqVHBQCJVqJOK4,50906
124
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_c.h,sha256=Uf8i-6OYh0Z20jWOwftgAKXSrHYY3UlTgjD1ai77nxE,51487
125
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_containers.hpp,sha256=hKRGsaHCb8aesqmaV9MPr_Cp4YAD2dcklhcGXdAQ3L8,17960
126
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_error_handling.hpp,sha256=jKKPWeKf-E-FJUyJxbwy09zYKASACdlnaEUcpb6Di6o,2621
127
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_parsed_ir.hpp,sha256=ZF4IflfhbUsmIWVkds4SlzQEXNaGBzYVmEW-1CMORs8,9270
128
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_cross_util.hpp,sha256=CUKwuuiI65hmha2vLWdB0V1IEXEQVtjbxo-oD0DRhIA,1402
129
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_glsl.hpp,sha256=XvS8t-MCVJH2fwkcnrxtECdNqRQLd6PF0rv9w3P4K-E,47618
130
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_hlsl.hpp,sha256=0zJmxOVji-yHIlC4Wph2RD5E0dYHM1jWJtLjrsJAY5M,16383
131
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_msl.hpp,sha256=PIGKi-xLa5z6O5Qy3LbU93hzvKeG5QTepebI6Ny3siQ,60204
132
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_parser.hpp,sha256=5cwhStHYe9eBg_LnKpAsD7mU3Bjnqm6D6Gyyh1cIwvI,2633
133
+ gstaichi-2.0.0.data/data/include/spirv_cross/spirv_reflect.hpp,sha256=qOs1tPZl1C6f-xivCfK2wbzD7575LdfZ3QQ8HpQ6i5Y,2503
134
+ gstaichi-2.0.0.data/data/lib/libSPIRV-Tools-shared.dylib,sha256=3YKr2s9lChIIdo4OK7DzpeUjq5bD2DZ6_QRdMOjHY2Y,1899416
135
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake,sha256=dMEufEjR-_w2-FovZM86J6L4mLAC0V_ghy3NSn-quds,225
136
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget-release.cmake,sha256=udoS0FC5wj8lU72VVq8GeTJTzseWZ0btwt7-ULwiQHI,1396
137
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake,sha256=vx24AucAN1drz4V3WjySdbl3D6KTsmn_XVYb3hht8Ig,4419
138
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffConfig.cmake,sha256=72Wr7X0CYzx3Vt-rI2YcqgXu0RFeVWJAlre9dqxANEE,275
139
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets-release.cmake,sha256=TGr8cW-33wobWQGGXLpGsV3hkVrzmSTCHk3PNiInwQE,873
140
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets.cmake,sha256=mn183rcp87-r_mBuzK1qQnprD5icDGNesRhhcKWerv4,5010
141
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkConfig.cmake,sha256=_LKmSzAEq3x0KnvZ0G8XeoLuMDuHoL78IAdJpeJGdew,275
142
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets-release.cmake,sha256=UXaiPMo8XzoeYmZNDFGfHEhMi2bo38qJ5ymF6qC6Qgo,873
143
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets.cmake,sha256=lIKD2R2v5-2L0UpqjIH9CIDBKWknMHYUKgWfK_pFn8U,4970
144
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintConfig.cmake,sha256=NUFb5HZvW5-c5yAt91Yo64tMFfue-1vRa1t7H6o3IBY,275
145
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets-release.cmake,sha256=twMwM0B9qJYgOxID49zEQIF5NtyhnGB0HXksUb-XH14,873
146
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets.cmake,sha256=JG8ctvqSzUuOYEms-waLgrIfnH6y1ps3vm11A4MaB88,5010
147
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optConfig.cmake,sha256=vKq0g25OpIoYmEt_h6On0dYj8OKETBlrkn3f_jhAHzE,270
148
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets-release.cmake,sha256=zmHEMsi4kvj04bKXZcDXBGB98gMQM8yGujq2bBQMn8I,866
149
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake,sha256=CjNXDkAi9hTLVjaAq9bPHJ_armEkgd8J_uX_jz80WT4,4971
150
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceConfig.cmake,sha256=7zFj1xzP5RT6FkohmRm4KFdC8zcR-XdvdlF3_Sm-8Gw,285
151
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget-release.cmake,sha256=izVCfxb76CbAZ_9To3d0ao3Kc4JzltGydMyZG2kwdKo,887
152
+ gstaichi-2.0.0.data/data/lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget.cmake,sha256=L3aATbP_gMEMXsCv2M2R3SQcLHDkN_Ra05XgJtj-hyQ,5019
153
+ gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Config.cmake,sha256=DSZvP4sK4yRATcNqjKivAbW_WNFbHOgG6eMY6JXpt1U,115
154
+ gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3ConfigVersion.cmake,sha256=d2IEfPkbPohGWgrQLPckr9vTKqxPUUFO1ZgxVeIKwa0,2762
155
+ gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets-release.cmake,sha256=BpDZPBIm6Qs3gqDUufi-ocWC39UDWZwGtCkxm_4dB3M,789
156
+ gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets.cmake,sha256=dK8hfR7rhZKoRPumDRQPHqzqNmEaSFa1L7Ri4ie_tik,4195
157
+ gstaichi-2.0.0.data/data/share/spirv_cross_c/cmake/spirv_cross_cConfig-release.cmake,sha256=7DDeJII8Fu7nuVtqY9APJeyJQmRHOEesYb4GZB5U2Nk,852
158
+ gstaichi-2.0.0.data/data/share/spirv_cross_c/cmake/spirv_cross_cConfig.cmake,sha256=Hghnpsb7jyqriJ43FDo9rM8xJZ9V3fTEPyyar4kpRYM,5184
159
+ gstaichi-2.0.0.data/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig-release.cmake,sha256=UsdH4n6NgNjTml-XU9CmWSZaSYVcCAefPWvjunerKgI,873
160
+ gstaichi-2.0.0.data/data/share/spirv_cross_core/cmake/spirv_cross_coreConfig.cmake,sha256=SVjYWo1lYL73oV06i4YcWVfj6417V6-R2iw5oTEBMIk,4145
161
+ gstaichi-2.0.0.data/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig-release.cmake,sha256=pYi8QcsV3wckWAogPIHSycvi9CL9jUb6cpnRSl4YKI0,866
162
+ gstaichi-2.0.0.data/data/share/spirv_cross_cpp/cmake/spirv_cross_cppConfig.cmake,sha256=OW25x5am_T88hrS4Ad3GfKFgCmL0RYQOb-ICwlZd8SE,4992
163
+ gstaichi-2.0.0.data/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig-release.cmake,sha256=N-qk5YvM_c0SxKtwE3eFkpt85Rsna_WBiziGedJXsgg,873
164
+ gstaichi-2.0.0.data/data/share/spirv_cross_glsl/cmake/spirv_cross_glslConfig.cmake,sha256=pk-o4Ad1jJdLXREPCkcaAoqLJMhDWGGONA5GUSYB5Oo,4997
165
+ gstaichi-2.0.0.data/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig-release.cmake,sha256=49Uid2s5zMuu0rPuxdUttbXqVpys5JNo5iTPu-g3pcM,873
166
+ gstaichi-2.0.0.data/data/share/spirv_cross_hlsl/cmake/spirv_cross_hlslConfig.cmake,sha256=3FUp-uxkYPr2s2E-NFi1_RJSIilktszr0H1Nt_f4Jtw,4997
167
+ gstaichi-2.0.0.data/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig-release.cmake,sha256=aaEvTgqXscm1VxqHppZaHaKjrdVuZBdwenembdtUKSc,866
168
+ gstaichi-2.0.0.data/data/share/spirv_cross_msl/cmake/spirv_cross_mslConfig.cmake,sha256=LQ7qHYk4h7buccDVzPckmHVezUqCGoyqbEnrYy_UeU0,4992
169
+ gstaichi-2.0.0.data/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig-release.cmake,sha256=pd1hm0LV2XXMOSeMdOm8p7WC70lIe--0tsZRbFivahA,894
170
+ gstaichi-2.0.0.data/data/share/spirv_cross_reflect/cmake/spirv_cross_reflectConfig.cmake,sha256=RU7YyZWYefRWl0Nf3cmwX6YaMbmbJdh-xMTReb2gihs,4160
171
+ gstaichi-2.0.0.data/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig-release.cmake,sha256=Lfo9_3aEg1ucY0bYHahk7qv_6LqKxanxKO42bNDUmGo,873
172
+ gstaichi-2.0.0.data/data/share/spirv_cross_util/cmake/spirv_cross_utilConfig.cmake,sha256=ndic8GTSOmp0tv6meX-YQwxEgmCx78aAf0s9d1KwTDU,4997
173
+ gstaichi-2.0.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
174
+ gstaichi-2.0.0.dist-info/METADATA,sha256=X0874X3hQzbBhUUYBOEplfAFuWAcR7mcEnnq9yp0b3Y,4686
175
+ gstaichi-2.0.0.dist-info/WHEEL,sha256=QbwVjH-TlueSdsOKSic424jsJD30r52gknYt4wXVwF0,109
176
+ gstaichi-2.0.0.dist-info/top_level.txt,sha256=BoKkPzj6Sfycl5Ge5sB9QRDVZvFB5R0sxbZn4YNPb80,9
177
+ gstaichi-2.0.0.dist-info/RECORD,,
gstaichi/__main__.py DELETED
@@ -1,5 +0,0 @@
1
- # type: ignore
2
-
3
- from ._main import main
4
-
5
- main()