Vectorization
Геометрические операции в mmcore могут быть представлены в неизменном, а также векторизированом виде.
Отличия векторизированых функций
Отличия векторизированых функций лучше всего рассматривать на примере.
1D example
Создадим массив из 10 3D случайных точек
Вычислим AABB для этого массива.
Размеры, а также порядок элементов идентичны для обоих массивов. Это ожидаемо, так-как для AABB скалярным аргументом является плоский массив точек.
ND example
Рассмотрим пример с большей размерности.
Передадим на входы массивы c ndim
равным 3 и 5.
Summary
Signatures
groups
- items in n-kind groupsgroup 0, group 1, ... group n, group n+1
points
- count of points in last groupxyz
- point coordinatesmin-max
- min and max AABB value per dimention
Сигнатуры "скалярных" объектов а также наборов данных на вход выход:
input | output | |
---|---|---|
object |
|
|
data |
| ? |
Общая сигнатурв входа и выходы для обоих случаев:
first | second | last | |
---|---|---|---|
input | groups | points | xyz |
not vec | min-max | groups | xyz |
vec | groups | min-max | xyz |
Implementation
Векторизация выполняется с использованием numpy.vectorize
или ее оберткой vectorize
из модуля mmcore.func
которая предоставляет ряд дополнительных удобств.