예제 #1
0
 void SBAutoConvolve::SBAutoConvolveImpl::fillKValue(tmv::MatrixView<std::complex<double> > val,
                                                     double kx0, double dkx, double dkxy,
                                                     double ky0, double dky, double dkyx) const
 {
     dbg<<"SBAutoConvolve fillKValue\n";
     dbg<<"kx = "<<kx0<<" + i * "<<dkx<<" + j * "<<dkxy<<std::endl;
     dbg<<"ky = "<<ky0<<" + i * "<<dkyx<<" + j * "<<dky<<std::endl;
     GetImpl(_adaptee)->fillKValue(val,kx0,dkx,dkxy,ky0,dky,dkyx);
     val = ElemProd(val,val);
 }
예제 #2
0
 void SBAutoCorrelate::SBAutoCorrelateImpl::fillKValue(
     tmv::MatrixView<std::complex<double> > val,
     double kx0, double dkx, int izero,
     double ky0, double dky, int jzero) const
 {
     dbg<<"SBAutoCorrelate fillKValue\n";
     dbg<<"kx = "<<kx0<<" + i * "<<dkx<<", izero = "<<izero<<std::endl;
     dbg<<"ky = "<<ky0<<" + j * "<<dky<<", jzero = "<<jzero<<std::endl;
     GetImpl(_adaptee)->fillKValue(val,kx0,dkx,izero,ky0,dky,jzero);
     val = ElemProd(val,val.conjugate());
 }
예제 #3
0
 void SBAutoCorrelate::SBAutoCorrelateImpl::fillKValue(
     tmv::MatrixView<std::complex<double> > val,
     double x0, double dx, double dxy,
     double y0, double dy, double dyx) const
 {
     dbg<<"SBCorrelate fillKValue\n";
     dbg<<"x = "<<x0<<" + ix * "<<dx<<" + iy * "<<dxy<<std::endl;
     dbg<<"y = "<<y0<<" + ix * "<<dyx<<" + iy * "<<dy<<std::endl;
     GetImpl(_adaptee)->fillKValue(val,x0,dx,dxy,y0,dy,dyx);
     val = ElemProd(val,val.conjugate());
 }
예제 #4
0
 void SBAutoConvolve::SBAutoConvolveImpl::fillKValue(
     tmv::MatrixView<std::complex<double> > val,
     double x0, double dx, int ix_zero,
     double y0, double dy, int iy_zero) const
 {
     dbg<<"SBAutoConvolve fillKValue\n";
     dbg<<"x = "<<x0<<" + ix * "<<dx<<", ix_zero = "<<ix_zero<<std::endl;
     dbg<<"y = "<<y0<<" + iy * "<<dy<<", iy_zero = "<<iy_zero<<std::endl;
     GetImpl(_adaptee)->fillKValue(val,x0,dx,ix_zero,y0,dy,iy_zero);
     val = ElemProd(val,val);
 }
예제 #5
0
 void SBConvolve::SBConvolveImpl::fillKValue(tmv::MatrixView<std::complex<double> > val,
                                             double kx0, double dkx, double dkxy,
                                             double ky0, double dky, double dkyx) const
 {
     dbg<<"SBConvolve fillKValue\n";
     dbg<<"kx = "<<kx0<<" + i * "<<dkx<<" + j * "<<dkxy<<std::endl;
     dbg<<"ky = "<<ky0<<" + i * "<<dkyx<<" + j * "<<dky<<std::endl;
     ConstIter pptr = _plist.begin();
     assert(pptr != _plist.end());
     GetImpl(*pptr)->fillKValue(val,kx0,dkx,dkxy,ky0,dky,dkyx);
     if (++pptr != _plist.end()) {
         tmv::Matrix<std::complex<double> > val2(val.colsize(),val.rowsize());
         for (; pptr != _plist.end(); ++pptr) {
             GetImpl(*pptr)->fillKValue(val2.view(),kx0,dkx,dkxy,ky0,dky,dkyx);
             val = ElemProd(val,val2);
         }
     }
 }
예제 #6
0
 void SBConvolve::SBConvolveImpl::fillKValue(tmv::MatrixView<std::complex<double> > val,
                                             double x0, double dx, double dxy,
                                             double y0, double dy, double dyx) const
 {
     dbg<<"SBConvolve fillKValue\n";
     dbg<<"x = "<<x0<<" + ix * "<<dx<<" + iy * "<<dxy<<std::endl;
     dbg<<"y = "<<y0<<" + ix * "<<dyx<<" + iy * "<<dy<<std::endl;
     ConstIter pptr = _plist.begin();
     assert(pptr != _plist.end());
     GetImpl(*pptr)->fillKValue(val,x0,dx,dxy,y0,dy,dyx);
     if (++pptr != _plist.end()) {
         tmv::Matrix<std::complex<double> > val2(val.colsize(),val.rowsize());
         for (; pptr != _plist.end(); ++pptr) {
             GetImpl(*pptr)->fillKValue(val2.view(),x0,dx,dxy,y0,dy,dyx);
             val = ElemProd(val,val2);
         }
     }
 }