41 #define FOR_ALL_ELEMENTS_IN_VECTORIAL_MATRIX3D(v) \ 42 FOR_ALL_ELEMENTS_IN_ARRAY3D((v).__X) 48 #define FOR_ALL_ELEMENTS_IN_MULTIDIM_VECTORIAL_MATRIX3D(v) \ 49 FOR_ALL_DIRECT_ELEMENTS_IN_MULTIDIMARRAY((v).__X) 78 void resize(
int Zdim,
int Ydim,
int Xdim)
80 __X.
resize(Zdim, Ydim, Xdim);
81 __Y.
resize(Zdim, Ydim, Xdim);
82 __Z.
resize(Zdim, Ydim, Xdim);
138 XX(result) = __X(k, i, j);
139 YY(result) = __Y(k, i, j);
140 ZZ(result) = __Z(k, i, j);
189 double X(
int k,
int i,
int j)
const 203 double Y(
int k,
int i,
int j)
const 217 double Z(
int k,
int i,
int j)
const 285 #define OPERATION(func, arg1, arg2, result, op) \ 286 func((arg1).__X, (arg2).__X, (result).__X, op); \ 287 func((arg1).__Y, (arg2).__Y, (result).__Y, op); \ 288 func((arg1).__Z, (arg2).__Z, (result).__Z, op); 295 OPERATION(arrayByArray, *
this, op1, temp,
'+');
304 OPERATION(arrayByArray, *
this, op1, temp,
'-');
313 OPERATION(arrayByArray, *
this, op1, temp,
'*');
322 OPERATION(arrayByArray, *
this, op1, temp,
'/');
331 OPERATION(arrayByArray, *
this, op1, temp,
'^');
339 OPERATION(arrayByArray, *
this, op1, *
this,
'+');
346 OPERATION(arrayByArray, *
this, op1, *
this,
'-');
353 OPERATION(arrayByArray, *
this, op1, *
this,
'*');
360 OPERATION(arrayByArray, *
this, op1, *
this,
'/');
367 OPERATION(arrayByArray, *
this, op1, *
this,
'^');
370 #define OPERATION2(func, arg1, arg2, result, op) \ 371 func((arg1).__X, (arg2), (result).__X, op); \ 372 func((arg1).__Y, (arg2), (result).__Y, op); \ 373 func((arg1).__Z, (arg2), (result).__Z, op); 380 OPERATION2(arrayByScalar, *
this, op1, temp,
'+');
389 OPERATION2(arrayByScalar, *
this, op1, temp,
'-');
398 OPERATION2(arrayByScalar, *
this, op1, temp,
'*');
407 OPERATION2(arrayByScalar, *
this, op1, temp,
'/');
416 OPERATION2(arrayByScalar, *
this, op1, temp,
'^');
424 OPERATION2(arrayByScalar, *
this, op1, *
this,
'+');
431 OPERATION2(arrayByScalar, *
this, op1, *
this,
'-');
438 OPERATION2(arrayByScalar, *
this, op1, *
this,
'*');
445 OPERATION2(arrayByScalar, *
this, op1, *
this,
'/');
452 OPERATION2(arrayByScalar, *
this, op1, *
this,
'^');
double & Y(int k, int i, int j)
#define OPERATION(func, arg1, arg2, result, op)
void resize(size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)
void normalize_all_vectors()
Vectorial_MultidimArray operator/(const Vectorial_MultidimArray &op1) const
void printShape(std::ostream &out=std::cout) const
void operator+=(const double &op1)
void operator/=(const double &op1)
void sqrt(Image< double > &op)
Vectorial_MultidimArray operator*(double op1) const
FileName insertBeforeExtension(const String &str) const
const MultidimArray< double > & X() const
void operator*=(const Vectorial_MultidimArray &op1)
void write(const FileName &name="", size_t select_img=ALL_IMAGES, bool isStack=false, int mode=WRITE_OVERWRITE, CastWriteMode castMode=CW_CAST, int _swapWrite=0)
void operator-=(const Vectorial_MultidimArray &op1)
const MultidimArray< double > & Y() const
Vectorial_MultidimArray operator*(const Vectorial_MultidimArray &op1) const
void operator/=(const Vectorial_MultidimArray &op1)
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
Vectorial_MultidimArray operator^(const Vectorial_MultidimArray &op1) const
const MultidimArray< double > & Z() const
#define A3D_ELEM(V, k, i, j)
void module(MultidimArray< double > &result) const
double Y(int k, int i, int j) const
MultidimArray< double > & Z()
void vector_at(int k, int i, int j, Matrix1D< double > &result) const
void operator^=(const Vectorial_MultidimArray &op1)
Vectorial_MultidimArray operator+(const Vectorial_MultidimArray &op1) const
Vectorial_MultidimArray operator^(double op1) const
void resize(size_t Xdim, bool copy=true)
void resize(int Zdim, int Ydim, int Xdim)
#define OPERATION2(func, arg1, arg2, result, op)
#define DIRECT_MULTIDIM_ELEM(v, n)
void operator+=(const Vectorial_MultidimArray &op1)
Vectorial_MultidimArray operator-(double op1) const
void mod(const MultidimArray< T > &x, MultidimArray< T > &m, double y)
void resize(const MultidimArray< double > &V)
Vectorial_MultidimArray operator+(double op1) const
double X(int k, int i, int j) const
double & X(int k, int i, int j)
Vectorial_MultidimArray operator-(const Vectorial_MultidimArray &op1) const
Vectorial_MultidimArray operator/(double op1) const
#define FOR_ALL_ELEMENTS_IN_MULTIDIM_VECTORIAL_MATRIX3D(v)
MultidimArray< double > & Y()
void write(const FileName &fn) const
void operator^=(const double &op1)
void initZeros(const MultidimArray< T1 > &op)
void operator-=(const double &op1)
void operator*=(const double &op1)
double Z(int k, int i, int j) const
double & Z(int k, int i, int j)
MultidimArray< double > & X()