diff options
Diffstat (limited to 'graphics/pstricks/contrib/pst-func/tex/pst-func.tex')
-rw-r--r-- | graphics/pstricks/contrib/pst-func/tex/pst-func.tex | 73 |
1 files changed, 60 insertions, 13 deletions
diff --git a/graphics/pstricks/contrib/pst-func/tex/pst-func.tex b/graphics/pstricks/contrib/pst-func/tex/pst-func.tex index 1e982ddb2b..7960baf61b 100644 --- a/graphics/pstricks/contrib/pst-func/tex/pst-func.tex +++ b/graphics/pstricks/contrib/pst-func/tex/pst-func.tex @@ -1,4 +1,4 @@ -%% $Id: pst-func.tex 308 2021-10-30 14:11:45Z herbert $ +%% $Id: pst-func.tex 689 2023-04-03 06:46:27Z herbert $ %% %% This is file `pst-func.tex', %% @@ -31,8 +31,8 @@ % interface to the `xkeyval' package \pst@addfams{pst-func} % -\def\fileversion{0.99} -\def\filedate{2021/11/03} +\def\fileversion{1.01} +\def\filedate{2023/04/02} \message{`PST-func' v\fileversion, \filedate\space (hv)} % \pstheader{pst-func.pro} @@ -233,14 +233,14 @@ \def\psBessel{\@ifnextchar[{\psBessel@i}{\psBessel@i[]}} \def\psBessel@i[#1]#2#3#4{{%%% #2 = n \pst@killglue - \psset{plotpoints=500}% - \psset{#1}% + \psset{plotpoints=500,constI=1,constII=0}% + \psset{#1,algebraic=false}% + \pstVerb{ /toDegrees { 57.29577951 mul } def } \parametricplot{#3}{#4}{% /J1 0 def - /k { 57.29577951 mul } def - /xBessel t k def + /xBessel t toDegrees def 0 0.1 180 { - /tB exch k def + /tB exch toDegrees def /J1 J1 0.1 xBessel tB sin mul tB #2\space mul sub cos mul add def } for @@ -706,7 +706,9 @@ grestore \def\psPrintValue{\pst@object{psPrintValue}} \def\psPrintValue@i#1{\expandafter\psPrintValue@ii#1,,\@nil} \def\psPrintValue@ii#1,#2,#3\@nil{% #1,#2 only for algebraic code + \addbefore@par{algebraic=false}% \begin@SpecialObj + \use@par \addto@pscode{ gsave \psk@PSfont\space findfont \psk@fontscale scalefont setfont \ifPst@algebraic @@ -1465,14 +1467,18 @@ grestore \def\psBetaDist@i#1#2{% \ifdim#1pt<\z@ \psframebox*{\color{red}!!!\#1 must be greater than 0!!!} \else + \begingroup \addbefore@par{plotpoints=200,alpha=1,beta=1}% - \begin@OpenObj - \psplot[algebraic=false]{#1}{#2}{ + \addto@par{algebraic=false}% +% \begin@OpenObj + \use@par + \psplot{#1}{#2}{ \psk@beta \psk@alpha add GAMMA \psk@beta GAMMA \psk@alpha GAMMA mul div 1 x sub \psk@beta 1.0 sub exp mul x \psk@alpha 1.0 sub exp mul } - \end@OpenObj% +% \end@OpenObj% + \endgroup \fi% \ignorespaces% } @@ -1508,6 +1514,44 @@ grestore \endgroup% \ignorespaces% } + +\define@key[psset]{pst-func}{lambda}[1]{\def\psk@lambda{#1 }} +\psset[pst-func]{lambda=0.5} + +\def\psNonCentralTDist{\pst@object{psNonCentralTDist}} +\def\psNonCentralTDist@i#1#2{% + \leavevmode + \pst@killglue + \begingroup + \addbefore@par{plotpoints=500}% + \use@par + \ifdim\psk@nue pt<\z@ \psframebox*{\color{red}!!!nue must be greater than 0!!!} + \else + \psplot[algebraic=false]{#1}{#2}{% P(x) = a ( b/c + d/e ) + \psk@nue dup 2 div exp \psk@nue factorial mul % nominator of a + 2 \psk@nue exp Euler \psk@lambda dup mul 2 div exp mul + \psk@nue x dup mul add \psk@nue 2 div exp mul + \psk@nue 2 div GAMMA mul % denominator of a + div % a + 2 sqrt \psk@lambda mul x mul + \psk@nue 2 div 1 add + 1.5 + \psk@lambda dup mul x dup mul mul 2 div \psk@nue x dup mul add div + tx@FuncDict begin ConfHyperFunc end % Confluent Hypergeometric Funtion of the First Kind + mul % b + \psk@nue x dup mul add \psk@nue 1 add 2 div GAMMA mul % c + div % b/c + \psk@nue 1 add 2 div 0.5 \psk@lambda dup mul x dup mul mul 2 div \psk@nue x dup mul add div + tx@FuncDict begin ConfHyperFunc end % d + \psk@nue x dup mul add sqrt \psk@nue 2 div 1 add GAMMA mul % e + div % d/e + add % b/c + d/e + mul % (b/c + d/e) * a + }% + \fi + \endgroup + \ignorespaces +} % \def\psFDist{\pst@object{psFDist}} \def\psFDist@i#1#2{% @@ -1656,6 +1700,7 @@ grestore \fi 0 0 % the start point 0 1 nVal 1 sub { dup XvalRelCum exch get exch YvalRelCum exch get } for +% pstack \if@star 1 0 0 0 \fi % add values for the closed curve end }% filling the area under the curve. @@ -1676,14 +1721,16 @@ grestore \leavevmode \pst@killglue \begingroup - \addbefore@par{plotpoints=200,startAngle=0,endAngle=360}% + \addbefore@par{plotpoints=200,startAngle=0,endAngle=360,algebraic=false}% \use@par \parametricplot{\psk@startAngle}{\psk@endAngle}{% t cos dup mul 1 #1\space div exp \pst@radiusA \pst@number\psxunit div mul t 90 gt { t 270 lt { neg } if } if t sin dup mul 1 #1\space div exp \pst@radiusB \pst@number\psyunit div mul t 180 gt { neg } if } - \endgroup\ignorespaces} + \endgroup + \ignorespaces +} % \def\psWeierstrass{\pst@object{psWeierstrass}} \def\psWeierstrass@i(#1,#2){\@ifnextchar[{\psWeierstrass@ii(#1,#2)}{\psWeierstrass@iii(#1,#2)}} |