OSHUN  beta
Arbitrary Order Spherical-Harmonic 1D-3P Vlasov-Fokker-Planck-Maxwell code
Array2D_cmplx< T > Class Template Reference

#include <lib-array.h>

Public Member Functions

 Array2D_cmplx (size_t x, size_t y)
 
 Array2D_cmplx (const Array2D_cmplx &other)
 
 ~Array2D_cmplx ()
 
size_t dim () const
 
size_t dim1 () const
 
size_t dim2 () const
 
valarray< T > & array () const
 
T & operator[] (size_t i)
 
operator[] (size_t i) const
 
T & real (size_t i, size_t j)
 
real (size_t i, size_t j) const
 
T & imag (size_t i, size_t j)
 
imag (size_t i, size_t j) const
 
GSlice_iter< T > d1c (size_t b, size_t e)
 
GSlice_iter< T > d2c (size_t b, size_t e)
 
GSlice_iter< T > SubArray2D (size_t st, size_t nx, size_t ny)
 
CGSlice_iter< T > d2c (size_t b, size_t e) const
 
CGSlice_iter< T > d1c (size_t b, size_t e) const
 
CGSlice_iter< T > SubArray2D (size_t st, size_t nx, size_t ny) const
 
Array2D_cmplxoperator= (const T &d)
 
Array2D_cmplxoperator= (const complex< T > &c)
 
Array2D_cmplxoperator= (const Array2D< T > &other)
 
Array2D_cmplxoperator= (const Array2D_cmplx &other)
 
Array2D_cmplxoperator*= (const T &d)
 
Array2D_cmplxoperator*= (const complex< T > &c)
 
Array2D_cmplxoperator*= (const Array2D< T > &vmulti)
 
Array2D_cmplxoperator*= (const Array2D_cmplx &vmulti)
 
Array2D_cmplxoperator+= (const T &d)
 
Array2D_cmplxoperator+= (const complex< T > &c)
 
Array2D_cmplxoperator+= (const Array2D< T > &vadd)
 
Array2D_cmplxoperator+= (const Array2D_cmplx &vadd)
 
Array2D_cmplxoperator-= (const T &d)
 
Array2D_cmplxoperator-= (const complex< T > &c)
 
Array2D_cmplxoperator-= (const Array2D< T > &vmin)
 
Array2D_cmplxoperator-= (const Array2D_cmplx &vmin)
 
Array2D_cmplxmultid1 (const valarray< T > &vmulti)
 
Array2D_cmplxmultid1 (const valarray< complex< T > > &vmulti)
 
Array2D_cmplxmultid2 (const valarray< T > &vmulti)
 
Array2D_cmplxmultid2 (const valarray< complex< T > > &vmulti)
 
Array2D_cmplxDd1 ()
 
Array2D_cmplxDd2 ()
 
Array2D_cmplxFilterd1 (size_t N)
 

Private Attributes

valarray< T > * v
 
size_t d1
 
size_t d2
 
size_t td1
 

Detailed Description

template<class T>
class Array2D_cmplx< T >

Definition at line 624 of file lib-array.h.

Constructor & Destructor Documentation

◆ Array2D_cmplx() [1/2]

template<class T >
Array2D_cmplx< T >::Array2D_cmplx ( size_t  x,
size_t  y 
)

Definition at line 703 of file lib-array.h.

References Array2D_cmplx< T >::d1, Array2D_cmplx< T >::d2, Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

703  : d1(x), d2(y) {
704  td1 = 2*d1;
705  v = new valarray<T>(2*d1*d2);
706 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ Array2D_cmplx() [2/2]

template<class T >
Array2D_cmplx< T >::Array2D_cmplx ( const Array2D_cmplx< T > &  other)

Definition at line 708 of file lib-array.h.

References Array2D_cmplx< T >::array(), Array2D_cmplx< T >::d1, Array2D_cmplx< T >::d2, Array2D_cmplx< T >::dim1(), Array2D_cmplx< T >::dim2(), Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

708  {
709  d1 = other.dim1();
710  d2 = other.dim2();
711  td1 = 2*d1;
712  v = new valarray<T>(2*d1*d2);
713  (*v) = other.array();
714 }
valarray< T > * v
Definition: lib-array.h:629
size_t dim1() const
Definition: lib-array.h:641
size_t td1
Definition: lib-array.h:631
valarray< T > & array() const
Definition: lib-array.h:643
size_t dim2() const
Definition: lib-array.h:642
Here is the call graph for this function:

◆ ~Array2D_cmplx()

template<class T >
Array2D_cmplx< T >::~Array2D_cmplx ( )

Definition at line 716 of file lib-array.h.

References Array2D_cmplx< T >::v.

716  {
717  delete v;
718 }
valarray< T > * v
Definition: lib-array.h:629

Member Function Documentation

◆ array()

◆ d1c() [1/2]

template<class T >
GSlice_iter< T > Array2D_cmplx< T >::d1c ( size_t  b,
size_t  e 
)
inline

Definition at line 752 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

Referenced by Array3D< complex< double > >::array().

752  {
753  valarray<size_t> sz(3), str(3);
754  str[2] = 1, str[1] = td1; str[0] = 2;
755  sz[2] = 2, sz[1] = d2; sz[0] = e-b+1;
756  return GSlice_iter<T>(v,gslice(2*b,sz,str));
757 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ d1c() [2/2]

template<class T >
CGSlice_iter< T > Array2D_cmplx< T >::d1c ( size_t  b,
size_t  e 
) const
inline

Definition at line 760 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

760  {
761  valarray<size_t> sz(3), str(3);
762  str[2] = 1, str[1] = td1; str[0] = 2;
763  sz[2] = 2, sz[1] = d2; sz[0] = e-b+1;
764  return CGSlice_iter<T>(v,gslice(2*b,sz,str));
765 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ d2c() [1/2]

template<class T >
GSlice_iter< T > Array2D_cmplx< T >::d2c ( size_t  b,
size_t  e 
)
inline

Definition at line 768 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

Referenced by Array3D< complex< double > >::array().

768  {
769  valarray<size_t> sz(1), str(1); // sz --> size, str --> stride
770  str[0] = 1; sz[0] = (e-b+1)*td1;
771  return GSlice_iter<T>(v,gslice(b*td1,sz,str));
772 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ d2c() [2/2]

template<class T >
CGSlice_iter< T > Array2D_cmplx< T >::d2c ( size_t  b,
size_t  e 
) const
inline

Definition at line 775 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

775  {
776  valarray<size_t> sz(1), str(1); // sz --> size, str --> stride
777  str[0] = 1; sz[0] = (e-b+1)*td1;
778  return CGSlice_iter<T>(v,gslice(b*td1,sz,str));
779 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ Dd1()

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::Dd1 ( )

Definition at line 987 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

987  {
988  for(long i(0); i< td1*d2-4; ++i) {
989  (*v)[i] -= (*v)[i+4];
990  }
991  for(long i(td1*d2-5); i>-1; --i) {
992  (*v)[i+2] = (*v)[i];
993  }
994  return *this;
995 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ Dd2()

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::Dd2 ( )

Definition at line 1003 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

1003  {
1004  int twotd1 = 2*td1;
1005  for(long i(0); i< td1*d2-twotd1; ++i) {
1006  (*v)[i] -= (*v)[i+twotd1];
1007  }
1008  for(long i(td1*d2-twotd1-1); i>-1; --i) {
1009  (*v)[i+td1] = (*v)[i];
1010  }
1011  return *this;
1012 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ dim()

template<class T>
size_t Array2D_cmplx< T >::dim ( ) const
inline

Definition at line 640 of file lib-array.h.

References Array2D< T >::d2.

640 {return d1*d2;}

◆ dim1()

template<class T>
size_t Array2D_cmplx< T >::dim1 ( ) const
inline

Definition at line 641 of file lib-array.h.

References Array2D< T >::d1.

Referenced by Array2D_cmplx< T >::Array2D_cmplx().

641 {return d1;}
Here is the caller graph for this function:

◆ dim2()

template<class T>
size_t Array2D_cmplx< T >::dim2 ( ) const
inline

Definition at line 642 of file lib-array.h.

References Array2D< T >::d2.

Referenced by Array2D_cmplx< T >::Array2D_cmplx().

642 {return d2;}
Here is the caller graph for this function:

◆ Filterd1()

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::Filterd1 ( size_t  N)

Definition at line 1016 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

1016  {
1017  for (size_t j(0); j < d2; ++j ){
1018  for (size_t i(j*td1); i< j*td1+2*N; ++i ){
1019  (*v)[i] = 0.0;
1020  }
1021  }
1022  return *this;
1023 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ imag() [1/2]

template<class T >
T & Array2D_cmplx< T >::imag ( size_t  i,
size_t  j 
)
inline

Definition at line 740 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

Referenced by Array2D_cmplx< T >::multid1(), and Array2D_cmplx< T >::multid2().

740  {
741  return (*v)[2*i+1+j*td1];
742 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ imag() [2/2]

template<class T >
T Array2D_cmplx< T >::imag ( size_t  i,
size_t  j 
) const
inline

Definition at line 744 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

744  {
745  return (*v)[2*i+1+j*td1];
746 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ multid1() [1/2]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::multid1 ( const valarray< T > &  vmulti)

Definition at line 931 of file lib-array.h.

References Array2D_cmplx< T >::d1, Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

931  {
932  for (size_t j(0); j< td1*d2; j+= td1 ){
933  for (size_t i(0); i< d1; ++i ){
934  (*v)[2*i+j] *= vmulti[i];
935  (*v)[2*i+1+j] *= vmulti[i];
936  }
937  }
938  return *this;
939 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ multid1() [2/2]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::multid1 ( const valarray< complex< T > > &  vmulti)

Definition at line 941 of file lib-array.h.

References Array2D_cmplx< T >::d1, Array2D_cmplx< T >::d2, Array2D_cmplx< T >::imag(), Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

941  {
942  for (size_t j(0); j< td1*d2; j+= td1 ){
943  for (size_t i(0); i< d1; ++i ){
944  T vi((*v)[2*i+j]*vmulti[i].imag());
945  (*v)[2*i+j] *= vmulti[i].real(); // v[i] = Aa
946  (*v)[2*i+j] -= (*v)[2*i+1+j] * vmulti[i].imag(); // v[i] = Aa - Bb
947  (*v)[2*i+1+j] *= vmulti[i].real(); // v[i+1] = Ba
948  (*v)[2*i+1+j] += vi; // v[i+1] = Ba + Ab
949  }
950  }
951  return *this;
952 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
T & imag(size_t i, size_t j)
Definition: lib-array.h:740
Here is the call graph for this function:

◆ multid2() [1/2]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::multid2 ( const valarray< T > &  vmulti)

Definition at line 955 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

955  {
956  for (size_t j(0); j< d2; ++j ){
957  for (size_t i(j*td1); i< (j+1)*td1; ++i ){
958  (*v)[i] *= vmulti[j];
959  }
960  }
961  return *this;
962 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ multid2() [2/2]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::multid2 ( const valarray< complex< T > > &  vmulti)

Definition at line 965 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::imag(), Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

965  {
966  for (size_t j(0); j< d2; ++j ){
967  for (size_t i(j*td1); i< (j+1)*td1; i+=2 ){
968  T vi((*v)[i]* vmulti[j].imag());
969  (*v)[i] *= vmulti[j].real(); // v[i] = Aa
970  (*v)[i] -= (*v)[i+1] * vmulti[j].imag(); // v[i] = Aa - Bb
971  (*v)[i+1] *= vmulti[j].real(); // v[i+1] = Ba
972  (*v)[i+1] += vi; // v[i+1] = Ba + Ab
973  }
974  }
975  return *this;
976 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
T & imag(size_t i, size_t j)
Definition: lib-array.h:740
Here is the call graph for this function:

◆ operator*=() [1/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator*= ( const T &  d)

Definition at line 834 of file lib-array.h.

Referenced by Array3D< complex< double > >::array().

834  {
835  (*v) *=d;
836  return *this;
837 }
Here is the caller graph for this function:

◆ operator*=() [2/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator*= ( const complex< T > &  c)

Definition at line 839 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::real(), Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

839  {
840  for (size_t i(0); i< td1*d2; i+=2) { // suppose v[i]+iv[i+1]=A+iB, c=a+ib
841  T vi((*v)[i]*c.imag());
842  (*v)[i] *= c.real(); // v[i] = Aa
843  (*v)[i] -= (*v)[i+1]*c.imag(); // v[i] = Aa - Bb
844  (*v)[i+1] *= c.real(); // v[i+1] = Ba
845  (*v)[i+1] += vi; // v[i+1] = Ba + Ab
846  }
847  return *this;
848 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
Here is the call graph for this function:

◆ operator*=() [3/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator*= ( const Array2D< T > &  vmulti)

Definition at line 850 of file lib-array.h.

References Array2D< T >::array(), Array2D_cmplx< T >::d1, and Array2D_cmplx< T >::d2.

850  {
851  for (size_t i(0); i< d1*d2; ++i) {
852  (*v)[2*i] *= vmulti.array()[i];
853  (*v)[2*i+1] *= vmulti.array()[i];
854  }
855  return *this;
856 }
valarray< T > & array() const
Definition: lib-array.h:291
Here is the call graph for this function:

◆ operator*=() [4/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator*= ( const Array2D_cmplx< T > &  vmulti)

Definition at line 858 of file lib-array.h.

References Array2D_cmplx< T >::array(), Array2D_cmplx< T >::d2, Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

858  {
859  for (size_t i(0); i< td1*d2; i+=2) { // suppose v[i]+iv[i+1]=A+iB, vmulti[i] + ivmulti[i+1] = a+ib
860  T vi((*v)[i] * vmulti.array()[i+1]);
861  (*v)[i] *= vmulti.array()[i]; // v[i] = Aa
862  (*v)[i] -= (*v)[i+1]*vmulti.array()[i+1]; // v[i] = Aa - Bb
863  (*v)[i+1] *= vmulti.array()[i]; // v[i+1] = Ba
864  (*v)[i+1] += vi; // v[i+1] = Ba + Ab
865  }
866  return *this;
867 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
valarray< T > & array() const
Definition: lib-array.h:643
Here is the call graph for this function:

◆ operator+=() [1/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator+= ( const T &  d)

Definition at line 871 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

871  {
872  for (size_t i(0); i< td1*d2; i+=2) {
873  (*v)[i] +=d;
874  }
875  return *this;
876 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ operator+=() [2/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator+= ( const complex< T > &  c)

Definition at line 878 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::real(), and Array2D_cmplx< T >::td1.

878  {
879  for (size_t i(0); i< td1*d2; i+=2) {
880  (*v)[i] +=c.real();
881  (*v)[i+1] +=c.imag();
882  }
883  return *this;
884 }
size_t td1
Definition: lib-array.h:631
Here is the call graph for this function:

◆ operator+=() [3/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator+= ( const Array2D< T > &  vadd)

Definition at line 886 of file lib-array.h.

References Array2D< T >::array(), Array2D_cmplx< T >::d1, and Array2D_cmplx< T >::d2.

886  {
887  for (size_t i(0); i< d1*d2; ++i) {
888  (*v)[2*i] += vadd.array()[i];
889  }
890  return *this;
891 }
valarray< T > & array() const
Definition: lib-array.h:291
Here is the call graph for this function:

◆ operator+=() [4/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator+= ( const Array2D_cmplx< T > &  vadd)

Definition at line 893 of file lib-array.h.

References Array2D_cmplx< T >::array().

893  {
894  (*v) += vadd.array();
895  return *this;
896 }
valarray< T > & array() const
Definition: lib-array.h:643
Here is the call graph for this function:

◆ operator-=() [1/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator-= ( const T &  d)

Definition at line 900 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

900  {
901  for (size_t i(0); i< td1*d2; i+=2) {
902  (*v)[i] -=d;
903  }
904  return *this;
905 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ operator-=() [2/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator-= ( const complex< T > &  c)

Definition at line 907 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::real(), and Array2D_cmplx< T >::td1.

907  {
908  for (size_t i(0); i< td1*d2; i+=2) {
909  (*v)[i] -=c.real();
910  (*v)[i+1] -=c.imag();
911  }
912  return *this;
913 }
size_t td1
Definition: lib-array.h:631
Here is the call graph for this function:

◆ operator-=() [3/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator-= ( const Array2D< T > &  vmin)

Definition at line 915 of file lib-array.h.

References Array2D< T >::array(), Array2D_cmplx< T >::d1, and Array2D_cmplx< T >::d2.

915  {
916  for (size_t i(0); i< d1*d2; ++i) {
917  (*v)[2*i] -= vmin.array()[i];
918  }
919  return *this;
920 }
valarray< T > & array() const
Definition: lib-array.h:291
Here is the call graph for this function:

◆ operator-=() [4/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator-= ( const Array2D_cmplx< T > &  vmin)

Definition at line 922 of file lib-array.h.

References Array2D_cmplx< T >::array().

922  {
923  (*v) -= vmin.array();
924  return *this;
925 }
valarray< T > & array() const
Definition: lib-array.h:643
Here is the call graph for this function:

◆ operator=() [1/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator= ( const T &  d)

Definition at line 804 of file lib-array.h.

References Array2D_cmplx< T >::d2, and Array2D_cmplx< T >::td1.

Referenced by Array3D< complex< double > >::array().

804  {
805  for (size_t i(0); i< td1*d2; i+=2) {
806  (*v)[i] = d;
807  (*v)[i+1] = 0.0;
808  }
809  return *this;
810 }
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ operator=() [2/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator= ( const complex< T > &  c)

Definition at line 811 of file lib-array.h.

References Array2D_cmplx< T >::d2, Array2D_cmplx< T >::real(), and Array2D_cmplx< T >::td1.

811  {
812  for (size_t i(0); i< td1*d2; i+=2) {
813  (*v)[i] =c.real();
814  (*v)[i+1] =c.imag();
815  }
816  return *this;
817 }
size_t td1
Definition: lib-array.h:631
Here is the call graph for this function:

◆ operator=() [3/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator= ( const Array2D< T > &  other)

Definition at line 818 of file lib-array.h.

References Array2D< T >::array(), Array2D_cmplx< T >::d1, and Array2D_cmplx< T >::d2.

818  {
819  for (size_t i(0); i< d1*d2; ++i) {
820  (*v)[2*i] = other.array()[i];
821  (*v)[2*i+1] = 0.0;
822  }
823  return *this;
824 }
valarray< T > & array() const
Definition: lib-array.h:291
Here is the call graph for this function:

◆ operator=() [4/4]

template<class T >
Array2D_cmplx< T > & Array2D_cmplx< T >::operator= ( const Array2D_cmplx< T > &  other)

Definition at line 825 of file lib-array.h.

References Array2D_cmplx< T >::array().

825  {
826  if (this != &other) { //self-assignment
827  (*v) = other.array();
828  }
829  return *this;
830 }
valarray< T > & array() const
Definition: lib-array.h:643
Here is the call graph for this function:

◆ operator[]() [1/2]

template<class T >
T & Array2D_cmplx< T >::operator[] ( size_t  i)
inline

Definition at line 724 of file lib-array.h.

References Array2D_cmplx< T >::v.

724  {
725  return (*v)[i];
726 }
valarray< T > * v
Definition: lib-array.h:629

◆ operator[]() [2/2]

template<class T >
T Array2D_cmplx< T >::operator[] ( size_t  i) const
inline

Definition at line 728 of file lib-array.h.

References Array2D_cmplx< T >::v.

728  {
729  return (*v)[i];
730 }
valarray< T > * v
Definition: lib-array.h:629

◆ real() [1/2]

template<class T >
T & Array2D_cmplx< T >::real ( size_t  i,
size_t  j 
)
inline

Definition at line 732 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

Referenced by Array2D_cmplx< T >::operator*=(), Array2D_cmplx< T >::operator+=(), Array2D_cmplx< T >::operator-=(), and Array2D_cmplx< T >::operator=().

732  {
733  return (*v)[2*i+j*td1];
734 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631
Here is the caller graph for this function:

◆ real() [2/2]

template<class T >
T Array2D_cmplx< T >::real ( size_t  i,
size_t  j 
) const
inline

Definition at line 736 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

736  {
737  return (*v)[2*i+j*td1];
738 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ SubArray2D() [1/2]

template<class T >
GSlice_iter< T > Array2D_cmplx< T >::SubArray2D ( size_t  st,
size_t  nx,
size_t  ny 
)
inline

Definition at line 784 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

784  {
785  valarray<size_t> sz(2), str(2);
786  str[1] = 1; str[0] = td1;
787  sz[1] = 2*nx; sz[0] = ny;
788  return GSlice_iter<T>(v,gslice(2*st,sz,str));
789 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

◆ SubArray2D() [2/2]

template<class T >
CGSlice_iter< T > Array2D_cmplx< T >::SubArray2D ( size_t  st,
size_t  nx,
size_t  ny 
) const
inline

Definition at line 792 of file lib-array.h.

References Array2D_cmplx< T >::td1, and Array2D_cmplx< T >::v.

792  {
793  valarray<size_t> sz(2), str(2);
794  str[1] = 1; str[0] = td1;
795  sz[1] = 2*nx; sz[0] = ny;
796  return CGSlice_iter<T>(v,gslice(2*st,sz,str));
797 }
valarray< T > * v
Definition: lib-array.h:629
size_t td1
Definition: lib-array.h:631

Field Documentation

◆ d1

◆ d2

◆ td1

◆ v


The documentation for this class was generated from the following file: