source: sasview/sansmodels/src/sans/models/c_extensions/models.cpp @ a9dec92

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since a9dec92 was a9dec92, checked in by Mathieu Doucet <doucetm@…>, 16 years ago

update to sans model functors

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/**
2 * Scattering model classes
3 * The classes use the IGOR library found in
4 *   sansmodels/src/libigor
5 */
6#include "models.h"
7#include <stdio.h>
8using namespace std;
9
10extern "C" {
11        #include "libCylinder.h"
12        #include "cylinder.h"
13}
14
15Cylinder :: Cylinder() {
16        parameters.scale      = 1.0;
17        parameters.radius     = 10.0;
18        parameters.length     = 400.0;
19        parameters.contrast   = 1.0;
20        parameters.background = 0;
21        parameters.cyl_theta  = 0;
22        parameters.cyl_phi    = 0;
23}
24
25/**
26 * Function to evaluate 1D scattering function
27 * @param q: q-value
28 * @return: function value
29 */
30double Cylinder :: operator()(double q) {
31        return cylinder_analytical_1D(&parameters, q);
32}
33
34/**
35 * Function to evaluate 2D scattering function
36 * @param q_x: value of Q along x
37 * @param q_y: value of Q along y
38 * @return: function value
39 */
40double Cylinder :: operator()(double qx, double qy) {
41        return cylinder_analytical_2DXY(&parameters, qx, qy);
42}
43
44int main(void)
45{
46        Cylinder c = Cylinder();
47        printf("I(Q=%g) = %g\n", 0.001, c(0.001));
48        printf("I(Qx=%g, Qy=%g) = %g\n", 0.001, 0.001, c(0.001, 0.001));
49        return 0;
50}
Note: See TracBrowser for help on using the repository browser.