DAT [nx=1 ny=1 nz=1
]
¶mglData
: void
Create (int
mx, int
my=1
, int
mz=1
)
¶mglDataC
: void
Create (int
mx, int
my=1
, int
mz=1
)
¶void
mgl_data_create (HMDT
dat, int
mx, int
my, int
mz)
¶void
mgl_datac_create (HADT
dat, int
mx, int
my, int
mz)
¶Создает/пересоздает массив данных указанного размера и заполняет его нулями. Ничего не делает при mx, my, mz отрицательных или равных нулю.
dat mx [my=0 mz=0]
¶mglData
: void
Rearrange (int
mx, int
my=0
, int
mz=0
)
¶mglDataC
: void
Rearrange (int
mx, int
my=0
, int
mz=0
)
¶void
mgl_data_rearrange (HMDT
dat, int
mx, int
my, int
mz)
¶void
mgl_datac_rearrange (HADT
dat, int
mx, int
my, int
mz)
¶Изменяет размерность данных без изменения самого массива данных, так что результирующий массив mx*my*mz < nx*ny*nz. Если один из параметров my или mz ноль, то он будет выбран оптимальным образом. Например, если my=0, то будет my=nx*ny*nz/mx и mz=1.
dat ['dim'='yxz']
¶mglData
: void
Transpose (const char *
dim="yx"
)
¶mglDataC
: void
Transpose (const char *
dim="yx"
)
¶void
mgl_data_transpose (const char *
dim)
¶void
mgl_datac_transpose (HADT
dat, const char *
dim)
¶Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой dim. Функция может быть полезна для транспонирования одномерных (или квазиодномерных) массивов после чтения их из файла.
dat n1 [n2=0]
¶mglData
: void
Extend (int
n1, int
n2=0
)
¶mglDataC
: void
Extend (int
n1, int
n2=0
)
¶void
mgl_data_extend (HMDT
dat, int
n1, int
n2)
¶void
mgl_datac_extend (HADT
dat, int
n1, int
n2)
¶Увеличивает размер данных путем вставки (|n1|+1) новых срезов после (для n1>0) или перед (для n1<0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр n2. Данные в новые срезы будут скопированы из существующих. Например, для n1>0 новый массив будет a_ij^new = a_i^old where j=0...n1. Соответственно, для n1<0 новый массив будет a_ij^new = a_j^old, где i=0...|n1|.
dat rx [ry=1 rz=1 sm=off]
¶mglData
: void
Squeeze (int
rx, int
ry=1
, int
rz=1
, bool
smooth=false
)
¶mglDataC
: void
Squeeze (int
rx, int
ry=1
, int
rz=1
, bool
smooth=false
)
¶void
mgl_data_squeeze (HMDT
dat, int
rx, int
ry, int
rz, int
smooth)
¶void
mgl_datac_squeeze (HADT
dat, int
rx, int
ry, int
rz, int
smooth)
¶Уменьшает размер данных путём удаления элементов с индексами не кратными rx, ry, rz соответственно. Параметр smooth задает использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
dat n1 n2
'dir'
¶mglData
: void
Crop (int
n1, int
n2, char
dir='x'
)
¶mglDataC
: void
Crop (int
n1, int
n2, char
dir='x'
)
¶void
mgl_data_crop (HMDT
dat, int
n1, int
n2, char
dir)
¶void
mgl_datac_crop (HADT
dat, int
n1, int
n2, char
dir)
¶Обрезает границы данных при i<n1 и i>n2 (при n2>0) или i>n[xyz]
-n2 (при n2<=0) вдоль направления dir.
dat 'how'
¶mglData
: void
Crop (const char *
how="235x"
)
¶mglDataC
: void
Crop (const char *
how="235x"
)
¶void
mgl_data_crop_opt (HMDT
dat, const char *
how)
¶void
mgl_datac_crop_opt (HADT
dat, const char *
how)
¶Обрезает дальний край данных, чтобы сделать их более оптимальным для быстрого преобразования Фурье. Размер массива будет равен наиболее близким к исходному из 2^n*3^m*5^l. Строка how может содержать: ‘x’, ‘y’, ‘z’ для направлений, и ‘2’, ‘3’, ‘5’ для использования соответствующего основания.
dat 'dir' [pos=off num=0]
¶mglData
: void
Insert (char
dir, int
pos=0
, int
num=1
)
¶mglDataC
: void
Insert (char
dir, int
pos=0
, int
num=1
)
¶void
mgl_data_insert (HMDT
dat, char
dir, int
pos, char
num)
¶void
mgl_datac_insert (HADT
dat, char
dir, int
pos, char
num)
¶Вставляет num срезов вдоль направления dir с позиции pos и заполняет их нулями.
dat 'dir' [pos=off num=0]
¶mglData
: void
Delete (char
dir, int
pos=0
, int
num=1
)
¶mglDataC
: void
Delete (char
dir, int
pos=0
, int
num=1
)
¶void
mgl_data_delete (HMDT
dat, char
dir, int
pos, char
num)
¶void
mgl_datac_delete (HADT
dat, char
dir, int
pos, char
num)
¶Удаляет num срезов вдоль направления dir с позиции pos.
dat idx [idy=-1]
¶mglData
: void
Sort (lond
idx, long
idy=-1
)
¶void
mgl_data_sort (HMDT
dat, lond
idx, long
idy)
¶Сортирует строки (или срезы в 3D случае) по значениям в указанной колонке idx (или ячейках {idx,idy} для 3D случая). Не используйте в многопоточных функциях!
dat idx
¶mglData
: void
Clean (lond
idx)
¶void
mgl_data_clean (HMDT
dat, lond
idx)
¶Удаляет строки в которых значения для заданной колонки idx совпадают со значениями в следующей строке.
dat vdat [v2dat ...]
¶mglData
: void
Join (const mglDataA &
vdat)
¶mglDataC
: void
Join (const mglDataA &
vdat)
¶void
mgl_data_join (HMDT
dat, HCDT
vdat)
¶void
mgl_datac_join (HADT
dat, HCDT
vdat)
¶Объединяет данные из массива vdat с данными массива dat. При этом, функция увеличивает размер массива dat: в z-направлении для массивов с одинаковыми размерами по x и y; в y-направлении для массивов с одинаковыми размерами по x; в x-направлении в остальных случаях.