Ticket #15 (closed task: fixed)
Convert Model Functions to XOPs
| Reported by: | srkline | Owned by: | srkline |
|---|---|---|---|
| Priority: | major | Milestone: | Analysis_4.0_Beta |
| Component: | Analysis | Keywords: | |
| Cc: | Task: | Speed | |
| Blocking: |
Description
Moving XOPs will provide a much appreciated speed boost for model calculation, especially numerical integration. It also provides a template for incorporating c-code from other sources, without the need for converting code into Igor's language.
This is a multipart task -
- Add the XOP structure to the repository, work out a simple build scheme (AJJ)
- Convert the Igor code to C (already done - SRK)
- Decide on conventions, naming, how to package as needed
- Work with Mathieu to get a standard funciton format from DANSE that can be easily wrapped.
In the future:
- support of 3 XOPs - PPC/Intel/PC for Igor 5 (current analysis package only?)
- move to 2 XOPs - Univ. binary/PC for Igor 6
Attachments
Change History
comment:1 Changed 6 years ago by srkline
- Summary changed from Convert Model funcitons to XOPs to Convert Model Functions to XOPs
comment:2 Changed 6 years ago by srkline
- Task set to Speed
- Milestone set to Analysis_4.0_Beta
The conversion to XOPs has largely been completed. Still to do:
-Testing for correctness
-Declare functions as ThreadSafe?
-Testing distributions on each platform (Mac/Win?)
comment:4 Changed 5 years ago by srkline
DANSE functions have been added, and are in our repository now. It will require manual updating back and forth between us and Mathieu, but we now have control of the XOP code (and namespace, mostly) to be able to mesh best with our procedures.
comment:5 Changed 5 years ago by srkline
some issues - if the XOP is not installed, there can be compiler errors because a sequence of function calls are not declared threadSafe (and some may contain WM functions that are not threadSafe)
in addition - do we thread some of the 1-d calculations at all? CylPolyRad? could use a speed boost - but this is where I found the compile error/ threadSafe problem. Is there an easy solution?
comment:6 Changed 5 years ago by srkline
See CylPoyRad? for an example of how to thread a 1-d function without compiler problems -- this is done by changing the location of the conditional compile #if block.
comment:7 Changed 5 years ago by srkline
LOTS of changes were made to the XOP library and to the Igor functions to change the parameter list of some functions to take SLDs of particle and solvent, rather than contrast (SLD's are experimental observables, contrast is not...)
Makes a big mess for us (and Mathieu) in the short term, but I've wanted to do this for a long time.
Changed 5 years ago by srkline
-
attachment
Contrast_to_SLD_changes.txt
added
Listing of the Igor functions that now are in terms of SLD, not contrast
