Ticket #15 (closed task: fixed)

Opened 6 years ago

Last modified 5 years ago

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

Contrast_to_SLD_changes.txt Download (3.5 KB) - added by srkline 5 years ago.
Listing of the Igor functions that now are in terms of SLD, not contrast

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:3 Changed 6 years ago by ajj

  • Owner changed from kline to srkline

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

Listing of the Igor functions that now are in terms of SLD, not contrast

comment:8 Changed 5 years ago by srkline

Contrast to SLD changes are in changesets 235 (XOPs) and 236 (Igor)

comment:9 Changed 5 years ago by srkline

  • Status changed from new to closed
  • Resolution set to fixed

Andrew now has a working, distributable version of the XOP for windows. And there was much rejoicing...

Note: See TracTickets for help on using tickets.