DAT v1 ... ¶Создает новый массив данных dat и заполняет его числовыми значениями аргументов v1 .... Команда может создавать одно- и двухмерные массивы с произвольными значениями. Для создания 2d массива следует использовать разделитель ‘|’, который означает начало новой строки данных. Размер массива данных будет [maximal of row sizes * number of rows]. Например, команда list 1 | 2 3 создаст массив [1 0; 2 3]. Замечу, что максимальное число аргументов равно 1000.
DAT d1 ... ¶Создает новый массив данных dat и заполняет его значениями из массивов d1 .... Команда может создавать двух- и трёхмерные (если аргументы – двумерные массивы) массивы. Меньшая размерность всех массивов в аргументах должна совпадать. В противном случае аргумент (массив) будет пропущен.
mglData: void Set (const mreal *A, int NX, int NY=1, int NZ=1) ¶mglData: void Set (const double *A, int NX, int NY=1, int NZ=1) ¶void mgl_data_set_mreal (HMDT dat, const mreal *A, int NX, int NY, int NZ) ¶void mgl_data_set_double (HMDT dat, const double *A, int NX, int NY, int NZ) ¶mglDataC: void Set (const float *A, int NX, int NY=1, int NZ=1) ¶mglDataC: void Set (const double *A, int NX, int NY=1, int NZ=1) ¶mglDataC: void Set (const dual *A, int NX, int NY=1, int NZ=1) ¶void mgl_datac_set_float (HADT dat, const mreal *A, int NX, int NY, int NZ) ¶void mgl_datac_set_double (HADT dat, const double *A, int NX, int NY, int NZ) ¶void mgl_datac_set_complex (HADT dat, const dual *A, int NX, int NY, int NZ) ¶Выделяет память и копирует данные из массивов типа mreal* или double*, т.е. из массивов определённых как mreal a[NX*NY*NZ];.
mglData: void Set (const mreal **A, int N1, int N2) ¶mglData: void Set (const double **A, int N1, int N2) ¶void mgl_data_set_mreal2 (HMDT dat, const mreal **A, int N1, int N2) ¶void mgl_data_set_double2 (HMDT dat, const double **A, int N1, int N2) ¶Выделяет память и копирует данные из массивов типа mreal** или double** с размерностями N1, N2, т.е. из массивов определённых как mreal a[N1][N2];.
mglData: void Set (const mreal ***A, int N1, int N2) ¶mglData: void Set (const double ***A, int N1, int N2) ¶void mgl_data_set_mreal3 (HMDT dat, const mreal ***A, int N1, int N2) ¶void mgl_data_set_double3 (HMDT dat, const double ***A, int N1, int N2) ¶Выделяет память и копирует данные из массивов типа mreal*** или double*** с размерностями N1, N2, N3, т.е. из массивов определённых как mreal a[N1][N2][N3];.
mglData: void Set (gsl_vector *v) ¶mglDataC: void Set (gsl_vector *v) ¶void mgl_data_set_vector (HMDT dat, gsl_vector *v) ¶void mgl_datac_set_vector (HADT dat, gsl_vector *v) ¶Выделяет память и копирует данные из структуры типа gsl_vector *.
mglData: void Set (gsl_matrix *m) ¶mglDataC: void Set (gsl_matrix *m) ¶void mgl_data_set_matrix (HMDT dat, gsl_matrix *m) ¶void mgl_datac_set_matrix (HADT dat, gsl_matrix *m) ¶Выделяет память и копирует данные из структуры типа gsl_matrix *.
mglData: void Set (const mglDataA &from) ¶mglData: void Set (HCDT from) ¶void mgl_data_set (HMDT dat, HCDT from) ¶mglDataC: void Set (const mglDataA &from) ¶mglDataC: void Set (HCDT from) ¶void mgl_datac_set (HADT dat, HCDT from) ¶Выделяет память и копирует данные из другого экземпляра данных from.
mglDataC: void Set (const mglDataA &re, const mglDataA &im) ¶mglDataC: void Set (HCDT re, HCDT im) ¶mglDataC: void SetAmpl (HCDT ampl, const mglDataA &phase) ¶void mgl_datac_set_ri (HADT dat, HCDT re, HCDT im) ¶void mgl_datac_set_ap (HADT dat, HCDT ampl, HCDT phase) ¶Выделяет память и копирует данные из экземпляра данных для действительной re и мнимой im частей комплексного массива данных.
mglData: void Set (const std::vector<int> &d) ¶mglDataC: void Set (const std::vector<int> &d) ¶mglData: void Set (const std::vector<float> &d) ¶mglDataC: void Set (const std::vector<float> &d) ¶mglData: void Set (const std::vector<double> &d) ¶mglDataC: void Set (const std::vector<double> &d) ¶mglDataC: void Set (const std::vector<dual> &d) ¶Выделяет память и копирует данные из массива типа std::vector<T>.
mglData: void Set (const char *str, int NX, int NY=1, int NZ=1) ¶void mgl_data_set_values (const char *str, int NX, int NY, int NZ) ¶mglDataC: void Set (const char *str, int NX, int NY=1, int NZ=1) ¶void mgl_datac_set_values (const char *str, int NX, int NY, int NZ) ¶Выделяет память и сканирует массив данных из строки.
mglData: void SetList (long n, ...) ¶Allocate memory and set data from variable argument list of double values. Note, you need to specify decimal point ‘.’ for integer values! For example, the code SetList(2,0.,1.); is correct, but the code SetList(2,0,1); is incorrect.
mglData: void Set (const arma::vec &d) ¶mglData: void Set (const arma::mat &d) ¶mglData: void Set (const arma::cube &d) ¶mglDataC: void Set (const arma::vec &d) ¶mglDataC: void Set (const arma::cx_vec &d) ¶mglDataC: void Set (const arma::mat &d) ¶mglDataC: void Set (const arma::cx_mat &d) ¶mglDataC: void Set (const arma::cube &d) ¶mglDataC: void Set (const arma::cx_cube &d) ¶Выделяет память и копирует данные из Armadillo структур.
mglData: arma::mat arma_mat (long k=0) ¶mglData: arma::cube arma_cube () ¶mglData: arma::cx_mat arma_mat (long k=0) ¶mglData: arma::cx_cube arma_cube () ¶Возвращает данные в формате структур Armadillo.
mglData: void Link (mglData &from) ¶mglData: void Link (mreal *A, int NX, int NY=1, int NZ=1) ¶void mgl_data_link (HMDT dat, const mreal *A, int NX, int NY, int NZ) ¶mglDataC: void Link (mglDataC &from) ¶mglDataC: void Link (dual *A, int NX, int NY=1, int NZ=1) ¶void mgl_datac_link (HADT dat, const mreal *A, int NX, int NY, int NZ) ¶Устанавливает флаг использования внешнего массива данных, которые не будут удалены. Флаг может быть возвращён в исходное состояние и создан новый внутренний массив если использовались функции изменяющие размер данных.
DAT num v1 [v2=nan] ¶Создает новый одномерный массив данных dat размером num, и заполняет его равномерно в диапазоне [v1, v2]. Если v2=nan, то используется v2=v1.
dat v1 v2 ['dir'='x'] ¶mglData: void Fill (mreal v1, mreal v2, char dir='x') ¶mglDataC: void Fill (dual v1, dual v2, char dir='x') ¶void mgl_data_fill (HMDT dat, mreal v1, mreal v2, char dir) ¶void mgl_datac_fill (HADT dat, dual v1, dual v2, char dir) ¶Заполняет значениями равно распределёнными в диапазоне [x1, x2] в направлении dir={‘x’,‘y’,‘z’}.
dat 'eq'[vdat wdat] ¶mglData: void Fill (HMGL gr, const char *eq, const char *opt="") ¶mglData: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const char *opt="") ¶mglData: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const mglDataA &wdat, const char *opt="") ¶mglDataC: void Fill (HMGL gr, const char *eq, const char *opt="") ¶mglDataC: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const char *opt="") ¶mglDataC: void Fill (HMGL gr, const char *eq, const mglDataA &vdat, const mglDataA &wdat, const char *opt="") ¶void mgl_data_fill_eq (HMGL gr, HMDT dat, const char *eq, HCDT vdat, HCDT wdat, const char *opt) ¶void mgl_datac_fill_eq (HMGL gr, HADT dat, const char *eq, HCDT vdat, HCDT wdat, const char *opt) ¶Заполняет значениями вычисленными по формуле eq. Формула представляет собой произвольное выражение, зависящее от переменных ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Координаты ‘x’, ‘y’, ‘z’ полагаются меняющимися в диапазоне Min x Max (в отличие от функции Modify). Переменные ‘i’, ‘j’, ‘k’ равны значениям соответствующего индекса. При этом, используются нулевые значения для переменных, отвечающих отсутствующим размерностям. Переменная ‘u’ – значения исходного массива, переменные ‘v’, ‘w’ – значения массивов vdat, wdat. Последние могут быть NULL, т.е. опущены.
dat 'eq' [dim=0] ¶dat 'eq' vdat [wdat] ¶mglData: void Modify (const char *eq, int dim=0) ¶mglData: void Modify (const char *eq, const mglDataA &v) ¶mglData: void Modify (const char *eq, const mglDataA &v, const mglDataA &w) ¶mglDataC: void Modify (const char *eq, int dim=0) ¶mglDataC: void Modify (const char *eq, const mglDataA &v) ¶mglDataC: void Modify (const char *eq, const mglDataA &v, const mglDataA &w) ¶void mgl_data_modify (HMDT dat, const char *eq, int dim) ¶void mgl_data_modify_vw (HMDT dat, const char *eq, HCDT v, HCDT w) ¶void mgl_datac_modify (HADT dat, const char *eq, int dim) ¶void mgl_datac_modify_vw (HADT dat, const char *eq, HCDT v, HCDT w) ¶Аналогично предыдущему с координатами ‘x’, ‘y’, ‘z’, меняющимися в диапазоне [0,1]. Переменные ‘i’, ‘j’, ‘k’ равны значениям соответствующего индекса. При этом, используются нулевые значения для переменных, отвечающих отсутствующим размерностям. Если указан dim>0, то изменяются только слои >=dim.
dat 'how' ¶mglData: void FillSample (const char *how) ¶void mgl_data_fill_sample (HMDT a, const char *how) ¶Заполняет массив данных ’x’ или ’k’ значениями для преобразований Ханкеля (’h’) или Фурье (’f’).
dat xdat ydat zdat ¶mglData: mglData Grid (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &z, const char *opt="") ¶mglData: mglData Grid (const mglDataA &x, const mglDataA &y, const mglDataA &z, mglPoint p1, mglPoint p2) ¶void mgl_data_grid (HMGL gr, HMDT u, HCDT x, HCDT y, HCDT z, const char *opt) ¶void mgl_data_grid_xy (HMDT u, HCDT x, HCDT y, HCDT z, mreal x1, mreal x2, mreal y1, mreal y2) ¶Заполняет значения массива результатом линейной интерполяции (считая координаты равнораспределенными в диапазоне осей координат или в диапазоне [x1,x2]*[y1,y2]) по триангулированной поверхности, найденной по произвольно расположенным точкам ‘x’, ‘y’, ‘z’. NAN значение используется для точек сетки вне триангулированной поверхности. См. раздел Making regular data, для примеров кода и графика.
dat val [i=all j=all k=all] ¶mglData: void Put (mreal val, int i=-1, int j=-1, int k=-1) ¶mglDataC: void Put (dual val, int i=-1, int j=-1, int k=-1) ¶void mgl_data_put_val (HMDT a, mreal val, int i, int j, int k) ¶void mgl_datac_put_val (HADT a, dual val, int i, int j, int k) ¶Присваивает значения (под-)массива dat[i, j, k] = val. Индексы i, j, k равные ‘-1’ задают значения val для всего диапазона соответствующего направления(ий). Например, Put(val,-1,0,-1); задает a[i,0,j]=val для i=0...(nx-1), j=0...(nz-1).
dat vdat [i=all j=all k=all] ¶mglData: void Put (const mglDataA &v, int i=-1, int j=-1, int k=-1) ¶mglDataC: void Put (const mglDataA &v, int i=-1, int j=-1, int k=-1) ¶void mgl_data_put_dat (HMDT a, HCDT v, int i, int j, int k) ¶void mgl_datac_put_dat (HADT a, HCDT v, int i, int j, int k) ¶Копирует значения из массива v в диапазон значений данного массива. Индексы i, j, k равные ‘-1’ задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива v должны быть больше выбранного диапазона массива. Например, Put(v,-1,0,-1); присвоит a[i,0,j]=v.ny>nz ? v.a[i,j] : v.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx>=nx выполнено.
dat xdat vdat [sl=-1] ¶dat xdat ydat vdat [sl=-1] ¶dat xdat ydat zdat vdat ¶mglData: void Refill (const mglDataA &x, const mglDataA &v, mreal x1, mreal x2, long sl=-1) ¶mglData: void Refill (const mglDataA &x, const mglDataA &v, mglPoint p1, mglPoint p2, long sl=-1) ¶mglData: void Refill (const mglDataA &x, const mglDataA &y, const mglDataA &v, mglPoint p1, mglPoint p2, long sl=-1) ¶mglData: void Refill (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &v, mglPoint p1, mglPoint p2) ¶mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &v, long sl=-1, const char *opt="") ¶mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &v, long sl=-1, const char *opt="") ¶mglData: void Refill (HMGL gr, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &v, const char *opt="") ¶void mgl_data_refill_x (HMDT a, HCDT x, HCDT v, mreal x1, mreal x2, long sl) ¶void mgl_data_refill_xy (HMDT a, HCDT x, HCDT y, HCDT v, mreal x1, mreal x2, mreal y1, mreal y2, long sl) ¶void mgl_data_refill_xyz (HMDT a, HCDT x, HCDT y, HCDT z, HCDT v, mreal x1, mreal x2, mreal y1, mreal y2, mreal z1, mreal z2) ¶void mgl_data_refill_gr (HMGL gr, HMDT a, HCDT x, HCDT y, HCDT z, HCDT v, long sl, const char *opt) ¶Заполняет значениями интерполяции массива v в точках {x, y, z}={X[i], Y[j], Z[k]} (или {x, y, z}={X[i,j,k], Y[i,j,k], Z[i,j,k]} если x, y, z не 1d массивы), где X,Y,Z равномерно распределены в диапазоне [x1,x2]*[y1,y2]*[z1,z2] и имеют такой же размер как и заполняемый массив. Если параметр sl равен 0 или положительный, то изменятся будет только sl-ый срез.
dat xdat vdat [sl=-1] ¶mglData: void RefillGS (const mglDataA &x, const mglDataA &v, mreal x1, mreal x2, long sl=-1) ¶void mgl_data_refill_gs (HMDT a, HCDT x, HCDT v, mreal x1, mreal x2, long sl) ¶Заполняет значениями глобального кубического сплайна для массива v в точках x=X[i], где X равномерно распределен в диапазоне [x1,x2] и имеет такой же размер как и заполняемый массив. Если параметр sl равен 0 или положительный, то изменятся будет только sl-ый срез.
dat 'ids' ¶mglData: void SetColumnId (const char *ids) ¶void mgl_data_set_id (const char *ids) ¶mglDataC: void SetColumnId (const char *ids) ¶void mgl_datac_set_id (HADT a, const char *ids) ¶Задает названия ids для колонок массива данных. Строка должна содержать один символ ’a’...’z’ на колонку. Эти названия используются в функции column.
dat [p=0.5] ¶mglData: void RndBernoulli (mreal p=0.5) ¶void mgl_data_rnd_bernoulli (HMDT dat, mreal p) ¶mreal mgl_rnd_bernoulli (mreal p) ¶Заполняет массив случайными числами с распределением Бернулли вероятности p.
dat n [p=0.5] ¶mglData: void RndBinomial (long n, mreal p=0.5) ¶void mgl_data_rnd_binomial (HMDT dat, long n, mreal p) ¶mreal mgl_rnd_binomial (long n, mreal p) ¶Заполняет массив случайными числами с биномиальным распределением в n бросков с вероятностью p.
dat y1 y2 sigma h ¶mglData: void RndBrownian (mreal y1, mreal y2, mreal sigma, mreal h) ¶void mgl_data_rnd_brownian (HMDT dat, mreal y1, mreal y2, mreal sigma, mreal h) ¶Заполняет массив случайным броуновским движением.
dat vdat ¶mglData: void RndDiscrete (const mglDataA &vdat) ¶void mgl_data_rnd_discrete (HMDT dat, HCDT vdat) ¶mreal mgl_rnd_discrete (HCDT vdat) ¶Заполняет массив случайными числами с дискретным распределением.
dat [p] ¶mglData: void RndExponential (mreal p) ¶void mgl_data_rnd_exponential (HMDT dat, mreal p) ¶mreal mgl_rnd_exponential (mreal p) ¶Заполняет массив случайными числами с экспоненциальным распределением масштаба p.
dat [mu=0 sigma=1] ¶mglData: void RndGaussian (mreal mu=0, mreal sigma=1) ¶void mgl_data_rnd_gaussian (HMDT dat, mreal mu, mreal sigma) ¶mreal mgl_rnd_gaussian (mreal mu, mreal sigma) ¶Заполняет массив случайными числами с гауссовым распределением со средним mu и масштабом sigma.
dat ['dir'='a'] ¶mglData: void RndShuffle (char dir='a') ¶void mgl_data_rnd_shuffle (HMDT dat, char dir) ¶Перемешивает содержимое ячеек (для dir=‘a’) или срезов (для dir=‘xyz’).
dat lo hi ¶mglData: void RndUniform (mreal lo, mreal hi) ¶void mgl_data_rnd_uniform (HMDT dat, mreal lo, mreal hi) ¶mreal mgl_rnd_uniform (mreal lo, mreal hi) ¶Заполняет массив случайными числами с равномерным распределением в интервале (lo,hi).
dat lo hi ¶mglData: void RndInteger (long lo, long hi) ¶void mgl_data_rnd_integer (HMDT dat, long lo, mreal hi) ¶long mgl_rnd_integer (long lo, long hi) ¶Заполняет массив случайными целыми числами с равномерным распределением в интервале [lo,hi).