Changeset 38935ec in sasmodels for sasmodels


Ignore:
Timestamp:
Jun 12, 2018 3:01:44 AM (6 years ago)
Author:
Adam Washington <adam.washington@…>
Branches:
master
Children:
e46dde6
Parents:
33969b6
Message:

In place Hankel transform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/sesans.py

    rfa79f5c r38935ec  
    6767        H0 = np.float32(dq/(2*pi)) * q 
    6868 
    69         repq = np.tile(q, (SElength.size, 1)).T 
    70         repSE = np.tile(SElength, (q.size, 1)) 
    71         H = np.float32(dq/(2*pi)) * j0(repSE*repq) * repq 
     69        # repq = np.tile(q, (SElength.size, 1)).T 
     70        H = np.outer(q, SElength) 
     71        j0(H, out=H) 
     72        H *= np.float32(dq/(2*pi)) 
     73        H *= q.reshape((-1, 1)) 
    7274 
    73         replam = np.tile(lam, (q.size, 1)) 
    74         reptheta = np.arcsin(repq*replam/2*np.pi) 
     75        lam = np.asarray(lam, dtype=np.float32) 
     76        reptheta = np.outer(q, lam) 
     77        reptheta /= np.float32(2*np.pi) 
     78        np.arcsin(reptheta, out=reptheta) 
     79        # reptheta = np.arcsin(repq*replam/2*np.pi) 
    7580        mask = reptheta > zaccept 
    7681        H[mask] = 0 
    7782 
     83        # H = np.zeros((q.size, SElength.size), dtype=np.float32) 
     84        # H0 = q * 0 
     85        assert(H.shape == (q.size, SElength.size)) 
     86 
    7887        self.q_calc = q 
    7988        self._H, self._H0 = H, H0 
Note: See TracChangeset for help on using the changeset viewer.