summaryrefslogtreecommitdiff
path: root/metapost/context/base/mp-tool.mpiv
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2014-05-03 13:55:34 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2014-05-03 13:55:34 +0200
commit624cbb5da392e9403984dd1cf368c0d408b1c2a8 (patch)
tree489c049ac849bb5bbce7d32e4df477872c58373d /metapost/context/base/mp-tool.mpiv
parent088de88944c1f2254250bb448c7371a87ff7ee39 (diff)
downloadcontext-624cbb5da392e9403984dd1cf368c0d408b1c2a8.tar.gz
2014-01-03 00:42:00
Diffstat (limited to 'metapost/context/base/mp-tool.mpiv')
-rw-r--r--metapost/context/base/mp-tool.mpiv23
1 files changed, 13 insertions, 10 deletions
diff --git a/metapost/context/base/mp-tool.mpiv b/metapost/context/base/mp-tool.mpiv
index 4ca2ea0f9..672a051c2 100644
--- a/metapost/context/base/mp-tool.mpiv
+++ b/metapost/context/base/mp-tool.mpiv
@@ -289,14 +289,10 @@ vardef set_outer_boundingbox text q = % obsolete
setbounds q to outerboundingbox q;
enddef;
-%D Some missing functions can be implemented rather straightforward (thanks to
-%D Taco and others):
+%D Some missing functions can be implemented rather
+%D straightforward:
-pi := 3.14159265358979323846 ; radian := 180/pi ; % 2pi*radian = 360 ;
-
-% let +++ = ++ ;
-
-numeric Pi ; Pi := pi ; % for some old compatibility reasons i guess
+numeric Pi ; Pi := 3.1415926 ;
vardef sqr primary x = x*x enddef ;
vardef log primary x = if x=0: 0 else: mlog(x)/mlog(10) fi enddef ;
@@ -306,6 +302,15 @@ vardef inv primary x = if x=0: 0 else: x**-1 fi enddef ;
vardef pow (expr x,p) = x**p enddef ;
+vardef asin primary x = x+(x**3)/6+3(x**5)/40 enddef ;
+vardef acos primary x = asin(-x) enddef ;
+vardef atan primary x = x-(x**3)/3+(x**5)/5-(x**7)/7 enddef ;
+vardef tand primary x = sind(x)/cosd(x) enddef ;
+
+%D Here are Taco Hoekwater's alternatives (but vardef'd and primaried).
+
+pi := 3.1415926 ; radian := 180/pi ; % 2pi*radian = 360 ;
+
vardef tand primary x = sind(x)/cosd(x) enddef ;
vardef cotd primary x = cosd(x)/sind(x) enddef ;
@@ -316,11 +321,9 @@ vardef cot primary x = cos(x)/sin(x) enddef ;
vardef asin primary x = angle((1+-+x,x)) enddef ;
vardef acos primary x = angle((x,1+-+x)) enddef ;
-vardef atan primary x = angle(1,x) enddef ;
vardef invsin primary x = (asin(x))/radian enddef ;
vardef invcos primary x = (acos(x))/radian enddef ;
-vardef invtan primary x = (atan(x))/radian enddef ;
vardef acosh primary x = ln(x+(x+-+1)) enddef ;
vardef asinh primary x = ln(x+(x++1)) enddef ;
@@ -1220,7 +1223,7 @@ enddef ;
extra_endfig := extra_endfig & " naturalizepaths ; " ;
-%D Nice tracer:
+%D Noce tracer:
def drawboundary primary p =
draw p dashed evenly withcolor white ;