Opened 15 years ago

Closed 14 years ago

#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: Blocking:
Task: Speed

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 (1)

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

Download all attachments as: .zip

Change History (10)

comment:1 Changed 15 years ago by srkline

  • Summary changed from Convert Model funcitons to XOPs to Convert Model Functions to XOPs

comment:2 Changed 15 years ago by srkline

  • Milestone set to Analysis_4.0_Beta
  • Task set to Speed

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 15 years ago by ajj

  • Owner changed from kline to srkline

comment:4 Changed 14 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 14 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 14 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 14 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 14 years ago by srkline

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

comment:8 Changed 14 years ago by srkline

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

comment:9 Changed 14 years ago by srkline

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

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.