Changeset 48cd5b3 in sasview for src/sas/sasgui
- Timestamp:
- Nov 17, 2016 8:09:03 AM (8 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/media/plugin.rst
r20cfa23 r48cd5b3 596 596 These functions have been tuned to be fast and numerically stable down 597 597 to $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!!! 598 which appear on some platforms but not others. So use them where needed. 599 The list in :code:`source` gives the required dependencies, related to the described function, that have to be added to your model !!! 600 599 601 600 602 polevl(x, c, n): … … 602 604 method so it is faster and more accurate. 603 605 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 604 617 :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. 609 624 610 625 :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): 613 629 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$ 615 631 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 617 634 The standard math library erf and erfc are slower and broken 618 635 on some platforms. 619 636 620 637 :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 624 642 $J_0(x) = \frac{1}{\pi}\int_0^\pi \cos(x\sin(\tau))\,d\tau$. 625 643 626 644 :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 630 649 $J_1(x) = \frac{1}{\pi}\int_0^\pi \cos(\tau - x\sin(\tau))\,d\tau$. 631 650 632 651 :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 636 656 $J_n(x) = \frac{1}{\pi}\int_0^\pi \cos(n\tau - x\sin(\tau))\,d\tau$. 637 657 658 If $n$ = 0 or 1, it uses sas_J0(x) or sas_J1(x), respectively. 659 638 660 :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): 641 664 Sine integral $\text{Si}(x) = \int_0^x \tfrac{\sin t}{t}\,dt$. 642 665 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): 646 691 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. 650 697 651 698 :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. 655 705 656 706 :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, 660 712 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 665 721 666 722 Problems with C models
Note: See TracChangeset
for help on using the changeset viewer.