DAT [nx=1 ny=1 nz=1] ¶mglData: void(int mx, int my=1, int mz=1) ¶mglDataC: void(int mx, int my=1, int mz=1) ¶void(HMDT dat, int mx, int my, int mz) ¶void(HADT dat, int mx, int my, int mz) ¶Создает/пересоздает массив данных указанного размера и заполняет его нулями. Ничего не делает при mx, my, mz отрицательных или равных нулю.
dat mx [my=0 mz=0] ¶mglData: void(int mx, int my=0, int mz=0) ¶mglDataC: void(int mx, int my=0, int mz=0) ¶void(HMDT dat, int mx, int my, int mz) ¶void(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(const char *dim="yx") ¶mglDataC: void(const char *dim="yx") ¶void(const char *dim) ¶void(HADT dat, const char *dim) ¶Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой dim. Функция может быть полезна для транспонирования одномерных (или квазиодномерных) массивов после чтения их из файла.
dat n1 [n2=0] ¶mglData: void(int n1, int n2=0) ¶mglDataC: void(int n1, int n2=0) ¶void(HMDT dat, int n1, int n2) ¶void(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(int rx, int ry=1, int rz=1, bool smooth=false) ¶mglDataC: void(int rx, int ry=1, int rz=1, bool smooth=false) ¶void(HMDT dat, int rx, int ry, int rz, int smooth) ¶void(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(int n1, int n2, char dir='x') ¶mglDataC: void(int n1, int n2, char dir='x') ¶void(HMDT dat, int n1, int n2, char dir) ¶void(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(const char *how="235x") ¶mglDataC: void(const char *how="235x") ¶void(HMDT dat, const char *how) ¶void(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(char dir, int pos=0, int num=1) ¶mglDataC: void(char dir, int pos=0, int num=1) ¶void(HMDT dat, char dir, int pos, char num) ¶void(HADT dat, char dir, int pos, char num) ¶Вставляет num срезов вдоль направления dir с позиции pos и заполняет их нулями.
dat 'dir' [pos=off num=0] ¶mglData: void(char dir, int pos=0, int num=1) ¶mglDataC: void(char dir, int pos=0, int num=1) ¶void(HMDT dat, char dir, int pos, char num) ¶void(HADT dat, char dir, int pos, char num) ¶Удаляет num срезов вдоль направления dir с позиции pos.
dat idx [idy=-1] ¶mglData: void(lond idx, long idy=-1) ¶void(HMDT dat, lond idx, long idy) ¶Сортирует строки (или срезы в 3D случае) по значениям в указанной колонке idx (или ячейках {idx,idy} для 3D случая). Не используйте в многопоточных функциях!
dat idx ¶mglData: void(lond idx) ¶void(HMDT dat, lond idx) ¶Удаляет строки в которых значения для заданной колонки idx совпадают со значениями в следующей строке.
dat vdat [v2dat ...] ¶mglData: void(const mglDataA &vdat) ¶mglDataC: void(const mglDataA &vdat) ¶void(HMDT dat, HCDT vdat) ¶void(HADT dat, HCDT vdat) ¶Объединяет данные из массива vdat с данными массива dat. При этом, функция увеличивает размер массива dat: в z-направлении для массивов с одинаковыми размерами по x и y; в y-направлении для массивов с одинаковыми размерами по x; в x-направлении в остальных случаях.