DAT v1 ... ¶Creates new variable with name dat and fills it by numeric values of command arguments v1 .... Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter ‘|’ which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command list 1 | 2 3 creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000.
DAT d1 ... ¶Creates new variable with name dat and fills it by data values of arrays of command arguments d1 .... Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000.
mglData: void Set (const float *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_float (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) ¶Allocates memory and copies the data from the flat float* or double* array.
mglData: void Set (const float **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) ¶Allocates memory and copies the data from the float** or double** array with dimensions N1, N2, i.e. from array defined as mreal a[N1][N2];.
mglData: void Set (const float ***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) ¶Allocates memory and copies the data from the float*** or double*** array with dimensions N1, N2, N3, i.e. from array defined as 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) ¶Allocates memory and copies the data from the gsl_vector * structure.
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) ¶Allocates memory and copies the data from the gsl_matrix * structure.
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) ¶Copies the data from mglData (or mglDataA) instance 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) ¶Copies the data from mglData instances for real and imaginary parts of complex data arrays.
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) ¶Allocates memory and copies the data from the std::vector<T> array.
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) ¶Allocates memory and scanf the data from the string.
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) ¶Allocates memory and copies the data from the Armadillo structures.
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 () ¶Return data in Armadillo format.
mglData: void Link (mglData &from) ¶mglData: void Link (mreal *A, int NX, int NY=1, int NZ=1) ¶void mgl_data_link (HMDT dat, 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, dual *A, int NX, int NY, int NZ) ¶Links external data array, i.e. don’t delete this array at exit.
DAT num v1 [v2=nan] ¶Creates new variable with name dat for one-dimensional array of size num. Array elements are equidistantly distributed in range [v1, v2]. If v2=nan then v2=v1 is used.
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) ¶Equidistantly fills the data values to range [v1, v2] in direction 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) ¶Fills the value of array according to the formula in string eq. Formula is an arbitrary expression depending on variables ‘x’, ‘y’, ‘z’, ‘u’, ‘v’, ‘w’. Coordinates ‘x’, ‘y’, ‘z’ are supposed to be normalized in axis range of canvas gr (in difference from Modify functions). Variables ‘i’, ‘j’, ‘k’ denote corresponding index. At this, zero value is used for variables if corresponding dimension is absent in the data. Variable ‘u’ is the original value of the array. Variables ‘v’ and ‘w’ are values of vdat, wdat which can be NULL (i.e. can be omitted).
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) ¶The same as previous ones but coordinates ‘x’, ‘y’, ‘z’ are supposed to be normalized in range [0,1]. Variables ‘i’, ‘j’, ‘k’ denote corresponding index. At this, zero value is used for variables if corresponding dimension is absent in the data. If dim>0 is specified then modification will be fulfilled only for slices >=dim.
dat 'how' ¶mglData: void FillSample (const char *how) ¶void mgl_data_fill_sample (HMDT a, const char *how) ¶Fills data by ’x’ or ’k’ samples for Hankel (’h’) or Fourier (’f’) transform.
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) ¶Fills the value of array according to the linear interpolation of triangulated surface assuming x-,y-coordinates equidistantly distributed in axis range (or in range [x1,x2]*[y1,y2]). Triangulated surface is found for arbitrary placed points ‘x’, ‘y’, ‘z’. NAN value is used for grid points placed outside of triangulated surface. See Making regular data, for sample code and picture.
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) ¶Sets value(s) of array a[i, j, k] = val. Negative indexes i, j, k=-1 set the value val to whole range in corresponding direction(s). For example, Put(val,-1,0,-1); sets a[i,0,j]=val for 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) ¶Copies value(s) from array v to the range of original array. Negative indexes i, j, k=-1 set the range in corresponding direction(s). At this minor dimensions of array v should be large than corresponding dimensions of this array. For example, Put(v,-1,0,-1); sets a[i,0,j]=v.ny>nz ? v[i,j] : v[i], where i=0...(nx-1), j=0...(nz-1) and condition v.nx>=nx is true.
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) ¶Fills by interpolated values of array v at the point {x, y, z}={X[i], Y[j], Z[k]} (or {x, y, z}={X[i,j,k], Y[i,j,k], Z[i,j,k]} if x, y, z are not 1d arrays), where X,Y,Z are equidistantly distributed in range [x1,x2]*[y1,y2]*[z1,z2] and have the same sizes as this array. If parameter sl is 0 or positive then changes will be applied only for slice 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) ¶Fills by global cubic spline values of array v at the point x=X[i], where X are equidistantly distributed in range [x1,x2] and have the same sizes as this array. If parameter sl is 0 or positive then changes will be applied only for slice sl.
dat 'ids' ¶mglData: void SetColumnId (const char *ids) ¶mglDataC: void SetColumnId (const char *ids) ¶void mgl_data_set_id (HMDT a, const char *ids) ¶void mgl_datac_set_id (HADT a, const char *ids) ¶Sets the symbol ids for data columns. The string should contain one symbol ’a’...’z’ per column. These ids are used in 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) ¶Fills data by random numbers of Bernoulli distribution with probability 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) ¶Fills by random numbers according to binomial distribution in n coin flips with probability 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) ¶Fills by fractional brownian motion.
dat vdat ¶mglData: void RndDiscrete (const mglDataA &vdat) ¶void mgl_data_rnd_discrete (HMDT dat, HCDT vdat) ¶mreal mgl_rnd_discrete (HCDT vdat) ¶Fills by random numbers according to discrete distribution.
dat [p] ¶mglData: void RndExponential (mreal p) ¶void mgl_data_rnd_exponential (HMDT dat, mreal p) ¶mreal mgl_rnd_exponential (mreal p) ¶Fills by random numbers according to exponential distribution with scale 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) ¶Fills by random numbers according to Gaussian distribution with average mu and scale sigma.
dat ['dir'='a'] ¶mglData: void RndShuffle (char dir='a') ¶void mgl_data_rnd_shuffle (HMDT dat, char dir) ¶Shuffle data cells (for dir=‘a’) or slices (for 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) ¶Fills by random numbers uniformly chosen in (lo,hi).