diff options
author | Hans Hagen <pragma@wxs.nl> | 2014-02-13 11:27:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2014-02-13 11:27:00 +0100 |
commit | f4f8db5c9230c293f454b335b777d211840463a7 (patch) | |
tree | e7af0732d45e2dd651aad1bd62fabe36c2d57768 /metapost | |
parent | b1d9ab946dc387c58a5575a360754fa04ebcad42 (diff) | |
download | context-f4f8db5c9230c293f454b335b777d211840463a7.tar.gz |
beta 2014.02.13 11:27
Diffstat (limited to 'metapost')
-rw-r--r-- | metapost/context/base/mp-base.mpiv | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/metapost/context/base/mp-base.mpiv b/metapost/context/base/mp-base.mpiv index 638be4628..0b655ef47 100644 --- a/metapost/context/base/mp-base.mpiv +++ b/metapost/context/base/mp-base.mpiv @@ -323,7 +323,7 @@ primarydef w dotprod z = enddef ; primarydef x**y = - if y=2 : + if y = 2 : x*x else : takepower y of x @@ -348,11 +348,46 @@ def takepower expr y of x = endfor fi else : - hide(errmessage "Undefined power: " & decimal x&"**"&decimal y) + hide(errmessage "Undefined power: " & decimal x & "**" & decimal y) fi fi enddef ; +% for big number systems: +% +% primarydef x**y = +% if y = 1 : +% x +% elseif y = 2 : +% x*x +% elseif y = 3 : +% x*x*x +% else : +% takepower y of x +% fi +% enddef ; +% +% vardef takepower expr y of x = +% if (x=0) and (y>0) : +% 0 +% else : +% 1 +% if y = floor y : +% if y >= 0 : +% for n=1 upto y : +% *x +% endfor +% else : +% for n=-1 downto y : +% /x +% endfor +% fi +% else : +% hide(errmessage "Undefined power: " & decimal x & "**" & decimal y) +% fi +% fi +% enddef ; + vardef direction expr t of p = postcontrol t of p - precontrol t of p enddef ; |