- Timestamp:
- Dec 6, 2016 5:14:03 PM (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:
- b61bd57
- Parents:
- 48cd5b3
- git-author:
- Paul Kienzle <pkienzle@…> (12/06/16 16:24:01)
- git-committer:
- Paul Kienzle <pkienzle@…> (12/06/16 17:14:03)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/media/plugin.rst
r48cd5b3 rca1eaeb 560 560 561 561 M_PI_180, M_4PI_3: 562 $\ pi/{180}$, $\tfrac{4}{3}\pi$562 $\frac{\pi}{180}$, $\frac{4\pi}{3}$ 563 563 SINCOS(x, s, c): 564 564 Macro which sets s=sin(x) and c=cos(x). The variables *c* and *s* … … 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.599 The list in :code:`source` gives the required dependencies, related to the described function, that have to be added to your model !!! 600 598 which appear on some platforms but not others, so use them where needed. 599 Add the files listed in :code:`source = ["lib/file.c", ...]` to your *model.py* 600 file in the order given, otherwise these functions will not be available. 601 601 602 602 polevl(x, c, n): 603 Polynomial evaluation $p(x) = \sum_{i=0}^n c_i x^ {n-i}$ using Horner's603 Polynomial evaluation $p(x) = \sum_{i=0}^n c_i x^i$ using Horner's 604 604 method so it is faster and more accurate. 605 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>`_) 606 $c = \{c_n, c_{n-1}, \ldots, c_0 \}$ is the table of coefficients, 607 sorted from highest to lowest. 608 609 :code:`source = ["lib/polevl.c", ...]` (`link to code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/polevl.c>`_) 609 610 610 611 p1evl(x, c, n): 611 Evaluation of normalized polynomial $p(x) = x^n + \sum_{i= 1}^n c_i x^{n-i}$ using Horner's612 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$.612 Evaluation of normalized polynomial $p(x) = x^n + \sum_{i=0}^{n-1} c_i x^i$ 613 using Horner's method so it is faster and more accurate. 614 615 $c = \{c_{n-1}, c_{n-2} \ldots, c_0 \}$ is the table of coefficients, 616 sorted from highest to lowest. 616 617 617 618 :code:`source = ["lib/polevl.c", ...]` … … 621 622 Gamma function $\text{sas_gamma}(x) = \Gamma(x)$. 622 623 623 The standard math library gamma function, tgamma(x) is unstable for x below 1 on some platforms. 624 The standard math function, tgamma(x) is unstable for $x < 1$ 625 on some platforms. 624 626 625 627 :code:`source = ["lib/sasgamma.c", ...]` … … 628 630 sas_erf(x), sas_erfc(x): 629 631 Error function 630 $\text{sas_erf}(x) = \frac{ 1}{\sqrt\pi}\int_0^x e^{-t^2}\,dt$632 $\text{sas_erf}(x) = \frac{2}{\sqrt\pi}\int_0^x e^{-t^2}\,dt$ 631 633 and complementary error function 632 $\text{sas_erfc}(x) = \frac{ 1}{\sqrt\pi}\int_x^{\infty} e^{-t^2}\,dt$.633 634 The standard math library erf and erfcare slower and broken634 $\text{sas_erfc}(x) = \frac{2}{\sqrt\pi}\int_x^{\infty} e^{-t^2}\,dt$. 635 636 The standard math functions erf(x) and erfc(x) are slower and broken 635 637 on some platforms. 636 638 … … 642 644 $J_0(x) = \frac{1}{\pi}\int_0^\pi \cos(x\sin(\tau))\,d\tau$. 643 645 646 The standard math function j0(x) is not available on all platforms. 647 644 648 :code:`source = ["lib/polevl.c", "lib/sas_J0.c", ...]` 645 649 (`link to Bessel function's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_J0.c>`_) … … 649 653 $J_1(x) = \frac{1}{\pi}\int_0^\pi \cos(\tau - x\sin(\tau))\,d\tau$. 650 654 655 The standard math function j1(x) is not available on all platforms. 656 651 657 :code:`source = ["lib/polevl.c", "lib/sas_J1.c", ...]` 652 658 (`link to Bessel function's code <https://github.com/SasView/sasmodels/tree/master/sasmodels/models/lib/sas_J1.c>`_) 653 659 654 660 sas_JN(n, x): 655 Bessel function of the first kind and integer order $n$: $\text{sas_JN}(n, x)=J_n(x)$ where 661 Bessel function of the first kind and integer order $n$: 662 $\text{sas_JN}(n, x)=J_n(x)$ where 656 663 $J_n(x) = \frac{1}{\pi}\int_0^\pi \cos(n\tau - x\sin(\tau))\,d\tau$. 657 658 664 If $n$ = 0 or 1, it uses sas_J0(x) or sas_J1(x), respectively. 665 666 The standard math function jn(n, x) is not available on all platforms. 659 667 660 668 :code:`source = ["lib/polevl.c", "lib/sas_J0.c", "lib/sas_J1.c", "lib/sas_JN.c", ...]` … … 670 678 .. math:: 671 679 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} 680 \text{Si}(x) \sim \frac{\pi}{2} 681 - \frac{\cos(x)}{x}\left(1 - \frac{2!}{x^2} + \frac{4!}{x^4} - \frac{6!}{x^6} \right) 682 - \frac{\sin(x)}{x}\left(\frac{1}{x} - \frac{3!}{x^3} + \frac{5!}{x^5} - \frac{7!}{x^7}\right) 677 683 678 684 For small arguments, … … 680 686 .. math:: 681 687 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!}688 \text{Si}(x) \sim x 689 - \frac{x^3}{3\times 3!} + \frac{x^5}{5 \times 5!} - \frac{x^7}{7 \times 7!} 684 690 + \frac{x^9}{9\times 9!} - \frac{x^{11}}{11\times 11!} 685 \end{equation}686 691 687 692 :code:`source = ["lib/Si.c", ...]` … … 690 695 sph_j1c(x): 691 696 Spherical Bessel form 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 kind694 and first order.697 $\text{sph_j1c}(x) = 3 j_1(x)/x = 3 (\sin(x) - x \cos(x))/x^3$, 698 with a limiting value of 1 at $x=0$, where $j_1(x)$ is the spherical 699 Bessel function of the first kind and first order. 695 700 696 701 This function uses a Taylor series for small $x$ for numerical accuracy. … … 701 706 702 707 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. 708 Bessel form $\text{sas_J1c}(x) = 2 J_1(x)/x$, with a limiting value 709 of 1 at $x=0$, where $J_1(x)$ is the Bessel function of first kind 710 and first order. 705 711 706 712 :code:`source = ["lib/polevl.c", "lib/sas_J1.c", ...]` … … 710 716 Gauss76Z[i], Gauss76Wt[i]: 711 717 Points $z_i$ and weights $w_i$ for 76-point Gaussian quadrature, respectively, 712 computing $\int_{-1}^1 f(z)\,dz \approx \sum_{i=1}^{76} w_i 718 computing $\int_{-1}^1 f(z)\,dz \approx \sum_{i=1}^{76} w_i\,f(z_i)$. 713 719 714 720 Similar arrays are available in :code:`gauss20.c` for 20-point
Note: See TracChangeset
for help on using the changeset viewer.