From 314b29513ffe652c5169d54aff4de001475eb1ea Mon Sep 17 00:00:00 2001
From: Marius <mariausol@gmail.com>
Date: Tue, 14 Jan 2014 16:20:28 +0200
Subject: beta 2014.01.14 15:03

---
 metapost/context/base/mp-tool.mpiv | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

(limited to 'metapost')

diff --git a/metapost/context/base/mp-tool.mpiv b/metapost/context/base/mp-tool.mpiv
index 672a051c2..53e163e07 100644
--- a/metapost/context/base/mp-tool.mpiv
+++ b/metapost/context/base/mp-tool.mpiv
@@ -289,10 +289,14 @@ vardef set_outer_boundingbox text q = % obsolete
     setbounds q to outerboundingbox q;
 enddef;
 
-%D Some missing functions can be implemented rather
-%D straightforward:
+%D Some missing functions can be implemented rather straightforward (thanks to
+%D Taco and others):
 
-numeric Pi ; Pi := 3.1415926 ;
+pi := 3.14159265358979323846 ; radian := 180/pi ; % 2pi*radian = 360 ;
+
+% let +++ = ++ ;
+
+numeric Pi ; Pi := pi ; % for some old compatibility reasons i guess
 
 vardef sqr  primary x = x*x                                 enddef ;
 vardef log  primary x = if x=0: 0 else: mlog(x)/mlog(10) fi enddef ;
@@ -302,15 +306,6 @@ 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 ;
 
@@ -321,9 +316,11 @@ 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 ;
-- 
cgit v1.2.3