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).