Ignore:
Timestamp:
Nov 17, 2016 6:09:03 AM (7 years ago)
Author:
celinedurniak <celine.durniak@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
ca1eaeb
Parents:
e42c8e9d
Message:

Added descriptions of special functions located in sasmodels/lib to plugin.rst

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/media/plugin.rst

    r20cfa23 r48cd5b3  
    596596These functions have been tuned to be fast and numerically stable down 
    597597to $q=0$ even in single precision.  In some cases they work around bugs 
    598 which appear on some platforms but not others. So use them where needed!!! 
     598which appear on some platforms but not others. So use them where needed. 
     599The list in :code:`source` gives the required dependencies, related to the described function, that have to be added to your model !!! 
     600 
    599601 
    600602    polevl(x, c, n): 
     
    602604        method so it is faster and more accurate. 
    603605 
     606        $c = \{c_i\}$ is the table of coefficients' values (sorted from the highest order to the constant one). 
     607 
     608        :code:`source = ["lib/polevl.c" ...]` (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/polevl.c>`_) 
     609 
     610    p1evl(x, c, n): 
     611        Evaluation of normalized polynomial $p(x) = x^n + \sum_{i=1}^n c_i x^{n-i}$ using Horner's 
     612        method so it is faster and more accurate. 
     613 
     614        $c = \{c_i\}$ is the table of coefficients' values (sorted from the highest order to the constant one) 
     615        with $c[n]=c_0=1.0$. 
     616 
    604617        :code:`source = ["lib/polevl.c", ...]` 
    605  
    606     sas_gamma: 
    607         Gamma function $\text{sas_gamma}(x) = \Gamma(x)$.  The standard math 
    608         library gamma function, tgamma(x) is unstable below 1 on some platforms. 
     618        (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/polevl.c>`_) 
     619 
     620    sas_gamma(x): 
     621        Gamma function $\text{sas_gamma}(x) = \Gamma(x)$. 
     622 
     623        The standard math library gamma function, tgamma(x) is unstable for x below 1 on some platforms. 
    609624 
    610625        :code:`source = ["lib/sasgamma.c", ...]` 
    611  
    612     erf, erfc: 
     626        (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_gamma.c>`_) 
     627 
     628    sas_erf(x), sas_erfc(x): 
    613629        Error function 
    614         $\text{erf}(x) = \frac{1}{\sqrt\pi}\int_0^x e^{-t^2}\,dt$ 
     630        $\text{sas_erf}(x) = \frac{1}{\sqrt\pi}\int_0^x e^{-t^2}\,dt$ 
    615631        and complementary error function 
    616         $\text{erfc}(x) = \frac{1}{\sqrt\pi}\int_x^\inf e^{-t^2}\,dt$. 
     632        $\text{sas_erfc}(x) = \frac{1}{\sqrt\pi}\int_x^{\infty} e^{-t^2}\,dt$. 
     633 
    617634        The standard math library erf and erfc are slower and broken 
    618635        on some platforms. 
    619636 
    620637        :code:`source = ["lib/polevl.c", "lib/sas_erf.c", ...]` 
    621  
    622     sas_J0: 
    623         Bessel function of the first kind where 
     638        (`link to error functions' code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_erf.c>`_) 
     639 
     640    sas_J0(x): 
     641        Bessel function of the first kind $\text{sas_J0}(x)=J_0(x)$ where 
    624642        $J_0(x) = \frac{1}{\pi}\int_0^\pi \cos(x\sin(\tau))\,d\tau$. 
    625643 
    626644        :code:`source = ["lib/polevl.c", "lib/sas_J0.c", ...]` 
    627  
    628     sas_J1: 
    629         Bessel function of the first kind where 
     645        (`link to Bessel function's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_J0.c>`_) 
     646 
     647    sas_J1(x): 
     648        Bessel function of the first kind  $\text{sas_J1}(x)=J_1(x)$ where 
    630649        $J_1(x) = \frac{1}{\pi}\int_0^\pi \cos(\tau - x\sin(\tau))\,d\tau$. 
    631650 
    632651        :code:`source = ["lib/polevl.c", "lib/sas_J1.c", ...]` 
    633  
    634     sas_JN: 
    635         Bessel function of the first kind where 
     652        (`link to Bessel function's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_J1.c>`_) 
     653 
     654    sas_JN(n, x): 
     655        Bessel function of the first kind and integer order $n$: $\text{sas_JN}(n, x)=J_n(x)$ where 
    636656        $J_n(x) = \frac{1}{\pi}\int_0^\pi \cos(n\tau - x\sin(\tau))\,d\tau$. 
    637657 
     658        If $n$ = 0 or 1, it uses sas_J0(x) or sas_J1(x), respectively. 
     659 
    638660        :code:`source = ["lib/polevl.c", "lib/sas_J0.c", "lib/sas_J1.c", "lib/sas_JN.c", ...]` 
    639  
    640     Si: 
     661        (`link to Bessel function's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_JN.c>`_) 
     662 
     663    Si(x): 
    641664        Sine integral $\text{Si}(x) = \int_0^x \tfrac{\sin t}{t}\,dt$. 
    642665 
    643         :code:`soure = ["lib/Si.c", ...]` 
    644  
    645     sph_j1c(qr): 
     666        This function uses Taylor series for small and large arguments: 
     667 
     668        For large arguments, 
     669 
     670        .. math:: 
     671 
     672           \begin{equation} 
     673             \text{Si}(x) \sim \frac{\pi}{2} - \frac{\cos(x)}{x}\big(1 - \frac{2!}{x^2} + \frac{4!}{x^4} 
     674             - \frac{6!}{x^6} \big) - \frac{\sin(x)}{x} \big(\frac{1}{x} - \frac{3!}{x^3} + \frac{5!}{x^5} 
     675             - \frac{7!}{x^7}\big) 
     676           \end{equation} 
     677 
     678        For small arguments, 
     679 
     680        .. math:: 
     681 
     682          \begin{equation} 
     683           \text{Si}(x) \sim x - \frac{x^3}{3\times 3!} + \frac{x^5}{5 \times 5!} - \frac{x^7}{7 \times 7!} 
     684           + \frac{x^9}{9\times 9!} - \frac{x^{11}}{11\times 11!} 
     685           \end{equation} 
     686 
     687        :code:`source = ["lib/Si.c", ...]` 
     688        (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/Si.c>`_) 
     689 
     690    sph_j1c(x): 
    646691        Spherical Bessel form 
    647         $F(qr) = 3 j_1(qr)/(qr) = 3 (\sin(qr) - qr \cos(qr))/{(qr)^3}$, 
    648         with a limiting value of 1 at $qr=0$.  This function uses a Taylor 
    649         series for small $qr$ for numerical accuracy. 
     692        $\text{sph_j1c}(x) = 3 j_1(x)/(x) = 3 (\sin(x) - x \cos(x))/{(x)^3}$, 
     693        with a limiting value of 1 at $x=0$, where $j_1(x)$ is the spherical Bessel function of the first kind 
     694        and first order. 
     695 
     696        This function uses a Taylor series for small $x$ for numerical accuracy. 
    650697 
    651698        :code:`source = ["lib/sph_j1c.c", ...]` 
    652  
    653     sas_J1c(qr): 
    654         Bessel form $F(qr) = 2 J_1(qr)/{(qr)}$, with a limiting value of 1 at $qr=0$. 
     699        (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sph_j1c.c>`_) 
     700 
     701 
     702    sas_J1c(x): 
     703        Bessel form $\text{sas_J1c}(x) = 2 J_1(x)/{(x)}$, with a limiting value of 1 at $x=0$, 
     704        where $J_1(x)$ is the Bessel function of first kind and first order. 
    655705 
    656706        :code:`source = ["lib/polevl.c", "lib/sas_J1.c", ...]` 
    657  
    658     Gauss76z[i], Gauss76Wt[i]: 
    659         Points $z_i$ and weights $w_i$ for 76-point Gaussian quadrature, 
     707        (`link to Bessel form's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_J1.c>`_) 
     708 
     709 
     710    Gauss76Z[i], Gauss76Wt[i]: 
     711        Points $z_i$ and weights $w_i$ for 76-point Gaussian quadrature, respectively, 
    660712        computing $\int_{-1}^1 f(z)\,dz \approx \sum_{i=1}^{76} w_i f(z_i)$. 
    661         Similar arrays are available in :code:`gauss20.c` for 20 point 
    662         quadrature and in :code:`gauss150.c` for 150 point quadrature. 
    663  
    664         :code:`source = ["gauss76.c", ...]` 
     713 
     714        Similar arrays are available in :code:`gauss20.c` for 20-point 
     715        quadrature and in :code:`gauss150.c` for 150-point quadrature. 
     716 
     717        :code:`source = ["lib/gauss76.c", ...]` 
     718        (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/gauss76.c>`_) 
     719 
     720 
    665721 
    666722Problems with C models 
Note: See TracChangeset for help on using the changeset viewer.