Algorithms for trig. on scientific calculators ? - MinkLib - 12-04-2024 04:30 PM
There are three I am aware of, for pocket calculators to get sin/cos/tan and arc functions.
CORDIC (invented 1958 at Convair by Jack Volder for jet bomber digital navigation):
Used by HP from 1966 on and then in the HP35 (1972) et al.
And many other makes subsequently.
Taylor Series (invented 1671 by Newton and Gregory):
Used by Elektronika in their programmable Soviet calculators from 1978 on (B3-21, B3-34, MK-54, MK-61, MK-52 etc.) per Sergei Frolov. First five terms used, as far as my calculations show..
Minsky circle algorithm (invented at MIT by Marvin Minsky, 1972).
Used in the unique Sinclair Scientific reprogramming of a 4 function chip from TI, in 1974, using 0.001 radian steps.
Any others?
RE: Algorithms for trig. on scientific calculators ? - Commie - 12-04-2024 05:17 PM
(12-04-2024 04:30 PM)MinkLib Wrote: There are three I am aware of, for pocket calculators to get sin/cos/tan and arc functions.
Any others?
There's one more thats quite good, the Pade series, it's basically a poly/poly.
Dates from around 1890 and can be applied to any function and is much better than Taylors series.
https://en.wikipedia.org/wiki/Pad%C3%A9_approximant
Cheers
Darren
RE: Algorithms for trig. on scientific calculators ? - Thomas Klemm - 12-04-2024 07:27 PM
(12-04-2024 04:30 PM)MinkLib Wrote: Any others?
It depends on the use case but these came to my mind:
They might also be combined, e.g. use Bhaskara's algorithm to get a good initial approximation and then use Bürgi's method to improve it.
RE: Algorithms for trig. on scientific calculators ? - KeithB - 12-04-2024 09:42 PM
I think the point is: are any of these used in calculators?
RE: Algorithms for trig. on scientific calculators ? - Thomas Klemm - 12-05-2024 02:59 AM
Oh dear, I missed that.
Do tables (like the Canon Sinuum) or manuals (like for the Texas Instruments SR-16) count as “calculators”?
RE: Algorithms for trig. on scientific calculators ? - C.Ret - 12-05-2024 05:45 PM
(12-04-2024 04:30 PM)MinkLib Wrote: Any others?
Do you mean:
- Other Algorithms ? In this case Commie, Thomas Klemm have already give same alternative one.
- Other Functions ? Of course yes, CORDIC algorithms are not limited to trigonometric's functions. Several early implementations and adaptation of CORDIC algorithms have been widely applied in desktop or pocket calculators (mainly on HP calculators) to compute trigonometric functions, hyperbolic functions, square roots, multiplications, divisions, exponentials and logarithms in arbitrary base. One advantage of CORDIC algorithms is flexibility since they allow to compute several functions with almost the same code.
RE: Algorithms for trig. on scientific calculators ? - Commie - 12-05-2024 06:24 PM
Here is an example of how calculators calculate sine, using the Pade algorithm. To increase the accuracy further just involves using more terms.
This particular equation was generated using Derive 6 math package and is good between pi/2 to -pi/2. Using a condition statement the user/programmer can extend the dynamic range from pi to -pi.
Cheers
Darren[attachment=14363]
RE: Algorithms for trig. on scientific calculators ? - brouhaha - 12-06-2024 03:20 AM
(12-05-2024 06:24 PM)Commie Wrote: Here is an example of how calculators calculate sine, using the Pade algorithm.
Which calculator models use the Padé approximant? While I've heard of this method, I've never before heard of it bring used in a calculator. I would have expected the Padé approximant to require too many terms to get the required accuracy for sin over e.g. the domain [0, pi/4].
Computers with high-performance floating point hardware do typically use polynomial or rational approximations, rather than CORDIC. Of course, now even some microcontrollers have high-performance binary IEEE floating point hardware, including some STM32 variants found in some recent Swiss Micros calculators, though AFAIK those calculators do not use binary IEEE floating point.
RE: Algorithms for trig. on scientific calculators ? - Commie - 12-06-2024 02:58 PM
(12-06-2024 03:20 AM)brouhaha Wrote: Which calculator models use the Padé approximant? While I've heard of this method, I've never before heard of it bring used in a calculator. I would have expected the Padé approximant to require too many terms to get the required accuracy for sin over e.g. the domain [0, pi/4].
Hi,
The only calculator, i know of, are the original hp35 and the hp45 which both use cordics and thats a certainty, however, if you check the link for the Pade algorithm on wikipedia, it claims that the Pade algorithm is used extensively in computers, the exact models I'm not sure.
I have used the Pade algorithm in a hp45 clone and it works well. The sine approx., I provided has a range greater than what you specify i.e., [-pi/2, pi/2], pi/2 is worst case approx., the equation I showed/derived becomes more accurate as you get closer to zero, maximum accuracy for the given equation.
Also, due to the symmetry of sine waves, one can double the dynamic range by including an if/then/else construct preceeding the main equation whose range then extends to [-pi,pi] which is a complete wave of 360 deg. or 2.pi. The first step in calculating sine is to remove all the sine circles first.
The best way to use Pade algorithm is to program in a poly subroutine so it can be called multiple times, this way, many transcandential math functions can be called over and over again, reducing rom space and increasing speed.
Cheers
Darren
RE: Algorithms for trig. on scientific calculators ? - SlideRule - 12-06-2024 07:01 PM
a small contribution:
[attachment=14366]
pg 195 CORDIC, 58, 120, 121, 122, 123, 124
pg58 Another example of IQ format application can be
using it to express numbers during performing CORDIC algorithm suited for
estimation of nonlinear functions. The ST Microelectronics company prepared
STM32G4-CORDIC co-processor. It provides hardware acceleration
of some mathematical functions, notably trigonometric, commonly used in
motor control, metering, signal processing and many other applications. It
speeds up the calculation of these functions compared to a software implementation,
freeing up processor cycles in order to perform other tasks. In this
case, the q1.31 or q1.5 formats are available. For processors without hardware
support as FPU or CORDIC units this mathematical capability can be
realized by software CORDIC library or math library.
pgs 117 - 124: 3.3 NONLINEAR FUNCTIONS
pg120 What about the other functions except square root, e.g.
trigonometric or logarithms? Do we really have to look for individual
methods of approximation or is there any universal technique for precise
and quick function evaluation? Luckily there is a way to do that. It is
named CORDIC proposed many years ago by Jack Volder [Volder 1959]
and commonly applied nowadays. The CORDIC abbreviation is from
‘coordinate rotation digital computer’.
pg121 The CORDIC algorithm can also be
used for calculating hyperbolic functions by replacing the successive circular
rotations by steps along a hyperbola. Thanks to this idea computers
can calculate the following functions: cosine (cos(x)), sine (sin(x)),
atan2(y,x), modulus i.e. sqrt(x2+y2), arctangent (tan−1(x)), hyperbolic sin
(sinh(x)), hyperbolic cosine (cosh(x)) and hyperbolic arctangent (atanh(x)).
If needed, the other functions can be evaluated from known identities …
From the algorithmic point of view, the CORDIC can be seen as a sequence
of micro rotations, where the vector XY is rotated by an angle θ expressed
in radians.
pg122 The CORDIC algorithm can work in circular of hyperbolic modes …
The CORDIC algorithm can also be used for calculating hyperbolic functions
(sinh, cosh, atanh) by replacing the circular rotations by hyperbolic angles
pg123 Figure 3.1 Functions evaluated by CORDIC algorithm vs. perfect
sin/cos function shapes.
pg124 Figure 3.2 Maximal error of sinus evaluation by CORDIC algorithm.
BEST!
SlideRule
RE: Algorithms for trig. on scientific calculators ? - Gerson W. Barbosa - 12-09-2024 10:59 PM
(12-06-2024 02:58 PM)Commie Wrote: I have used the Pade algorithm in a hp45 clone and it works well. The sine approx., I provided has a range greater than what you specify i.e., [-pi/2, pi/2], pi/2 is worst case approx., the equation I showed/derived becomes more accurate as you get closer to zero, maximum accuracy for the given equation.
Also, due to the symmetry of sine waves, one can double the dynamic range by including an if/then/else construct preceeding the main equation whose range then extends to [-pi,pi] which is a complete wave of 360 deg. or 2.pi. The first step in calculating sine is to remove all the sine circles first.
Minimax Polynomials are another technique for approximating mathematical functions. I have used them to implement all the basic trigonometric functions and their inverses on the HP 12c Platinum:
(12c Platinum) Fast & Accurate Trigonometric Functions
There is an excellent paper on this and other methods, Faster Math Functions, by Robin Green of Sony Computer Entertainment America, but I can't find a link to it right now. His slide presentantions might give an idea, though:
Faster Math Functions - Part 2
Faster Math Functions - Part 1
Apparently that is the same method used by Microsoft in their first 8-bit BASIC interpreters, like the MSX computer BASIC implementation.
From "The MSX Red Book":
(Avalon Software. The MSX Red Book. Pangbourne: Kuma Computers, [c.1985].)
Quote:... The function is then computed by polynomial
approximation (2C88H) using the list of coefficients at 2DEFH.
These are the first eight terms in the Taylor series X-
(X^3/3!)+(X^5/5!)-(X^7/7!) ... with the coefficients multiplied
by successive factors of 2*PI to compensate for the initial
scaling.
...
... The function (ATN) is computed by polynomial approximation (2C88H)
using the list of coefficients at 2E30H. These are the first
eight terms in the Taylor series X-(x^3/3)+(X^5/5)-(X^7/7) ...
with the coefficients modified slightly to telescope the
series.
...
2DEFH 8 SIN
2DF0H -.69215692291809
2DF8H 3.8172886385771
2E00H -15.094499474801
2E08H 42.058689667355
2E10H -76.705859683291
2E18H 81.605249275513
2E20H -41.341702240398
2E28H 6.2831853071796
2E30H 8 ATN
2E31H -.05208693904000
2E39H .07530714913480
2E41H -.09081343224705
2E49H .11110794184029
2E51H -.14285708554884
2E59H .19999999948967
2E61H -.33333333333160
2E69H 1.0000000000000
these imply
sin(x) ~ x - x^3/6.000000000000256 + x^5/120.0000000008265 - x^7/5040.000004584301 + x^9/362880.0369065691 - x^11/39917178.42757230 + x^13/6231366410.303893 - x^15/1356730094045.503
(Maximum absolute error in the range [-π/6..π/6]: 2e-16)
and
atan(x) ~ x - x^3/3.000000000015600 + x^5/5.000000012758250 - x^7/7.000002808107966 + x^9/9.000256718258997 - x^11/11.01158689035767 + x^13/13.27895175277446 - x^15/19.19867088430851
(Maximum absolute error in the range [-(2-√3)..(2-√3)]: 5e-16)
The following Pascal code more or less replicates the algorithm used in the RPN program for the HP 12c Platinum.
Code:
Program Trigs;
{ Gerson Wasicki Barbosa - Dec/2007 }
{ Trigonometric and inverse trigonometric functions (17-digit accuracy) }
{ To be compiled in TurboBCD (TurboPascal v3.02 }
{ Running times: Sin, Cos: 160.5 us; Tan: 321.0 us @ 500 MHz }
{ All angles in DEGREES }
var x: Real;
txt: Text;
function Sqrt(x: Real): real;
var sq, t: Real;
begin
if x<>0 then
begin
sq:=x/2;
repeat
t:=sq;
sq:=(sq+x/sq)/2
until sq=t;
Sqrt:=sq
end
else
Sqrt:=0
end;
function Intg(x: Real): Real;
var r: Real;
begin
r:=Int(x);
if x<0 then r:=r-1;
Intg:=r
end;
function Mdl (x, y: Real): Real;
begin
Mdl:=x-y*Intg(x/y)
end;
function Sign(x: Real): Integer;
begin
if x<>0 then
Sign:=Trunc((x)/Abs(x))
else
Sign:=0
end;
function Sin(x: Real): Real;
const A = 5.81776417331443192E-03;
B = -3.28183761370851117E-08;
C = 5.55391614470475312E-14;
D = -4.47571324262354212E-20;
E = 2.10398182046943194E-26;
F = -6.47383342002944734E-33;
G = 1.40457976326925111E-39;
H = -2.25584840859272218E-46;
var sn,x2: Real;
begin
x:=Mdl(x,360);
if x>90
then
if x<270
then
x:=180-x
else
x:=x-360;
x2:=x*x;
sn:=x*(A+x2*(B+x2*(C+x2*(D+x2*(E+x2*(F+x2*(G+H*x2)))))));
Sin:=sn*(3-4*sn*sn)
end;
function Cos(x: Real): Real;
begin
Cos:=Sin(90-x)
end;
function Tan(x: Real): Real;
begin
if Mdl(x,180)<>90
then
Tan:=Sin(x)/Cos(x)
else
Tan:=Sign(x)*9.99999999999999999E+49
end;
function ArcTan(x: real): Real;
const PI_2 = 1.57079632679489662E+00; { pi/2 }
PI_6 = 0.52359877559829887E+00; { pi/6 }
SQR3 = 1.73205080756887729E+00; { sqrt(3) }
TMS3 = 2.67949192431122706E-01; { 2 - sqrt(3) }
R2D = 5.72957795130823209E+01; { 180/pi }
A = 1.00000000000000000E+00;
B = -3.33333333333333320E-01;
C = 1.99999999999969080E-01;
D = -1.42857142845613967E-01;
E = 1.11111109453593870E-01;
F = -9.09089712757808854E-02;
G = 7.69182100185790154E-02;
H = -6.65496746226271243E-02;
I = 5.71652168403095978E-02;
J = -3.95856057285009705E-02;
var at, k1, k2, x2: real;
s1, s2: integer;
begin
s1:=Sign(x);
x:=Abs(x);
if x<1 then
begin
s2:=1;
k1:=0
end
else
begin
x:=1/x;
s2:=-1;
k1:=PI_2
end;
if x>TMS3
then
begin
x:=(x*SQR3-1)/(x+SQR3);
k2:=PI_6
end
else
k2:=0;
x2:=x*x;
at:=x*(A+x2*(B+x2*(C+x2*(D+x2*(E+x2*(F+x2*(G+x2*(H+x2*(I+J*x2)))))))));
ArcTan:=(k1+s2*(k2+at))*s1*R2D
end;
function ArcSin(x: real): real;
begin
if Abs(x)<=1
then
if Abs(x)<1
then
ArcSin:=ArcTan(x/(Sqrt(1-x*x)))
else
ArcSin:=Sign(x)*90
else
begin
Write(^G);
WriteLn('ArcSin Error')
end;
end;
function ArcCos(x: real): real;
begin
if Abs(x)<=1
then
if Abs(x)<1
then
ArcCos:=2*ArcTan(Sqrt((1-x)/(1+x)))
else
ArcCos:=90*(1-x)
else
begin
Write(^G);
WriteLn('ArcCos Error')
end;
end;
begin
ClrScr;
Assign(txt,'OUTPUT.TXT');
Rewrite(txt);
x:=-180;
repeat
if Trunc(x) Mod 60 = 0 then
begin
WriteLn(txt);
WriteLn(txt,' x',' ':11,'Sin(x)',' ':18,'Cos(x)',' ':18,'Tan(x)');
WriteLn(txt)
end;
WriteLn(txt,x:4:0,' ',Sin(x):21:18,' ',Cos(x):21:18,' ',Tan(x));
x:=x+1
until x=180;
WriteLn(txt);
x:=-1;
WriteLn(txt,' x',' ':9,'ArcSin(x)',' ':16,'ArcCos(x)',' ':16,'ArcTan(x)');
WriteLn(txt);
repeat
WriteLn(txt,x:6:1,' ',ArcSin(x):22:18,' ',ArcCos(x):22:18,' ',ArcTan(x):22:18);
x:=x+0.1
until x>1;
x:=-150;
repeat
if x<>0 then WriteLn(txt,x:6:1,' ------------ ------------ ',ArcTan(x):22:18);
x:=x+10
until x>150;
WriteLn(txt);
WriteLn(txt,' ArcSin(ArcCos(ArcTan(Tan(Cos(Sin(9)))))) = ',ArcSin(ArcCos(ArcTan(Tan(Cos(Sin(9)))))):20:18);
Close(txt)
end.
-----------------------------------------------------------------------------------------------------
x Sin(x) Cos(x) Tan(x)
-180 0.000000000000000000 -1.000000000000000000 0.00000000000000000E+00
-179 -0.017452406437283513 -0.999847695156391238 1.74550649282175858E-02
-178 -0.034899496702500972 -0.999390827019095730 3.49207694917477305E-02
-177 -0.052335956242943833 -0.998629534754573875 5.24077792830412040E-02
-176 -0.069756473744125301 -0.997564050259824247 6.99268119435104134E-02
-175 -0.087155742747658174 -0.996194698091745533 8.74886635259240053E-02
-174 -0.104528463267653471 -0.994521895368273335 1.05104235265676462E-01
-173 -0.121869343405147481 -0.992546151641322033 1.22784560902904591E-01
-172 -0.139173100960065444 -0.990268068741570314 1.40540834702391447E-01
-171 -0.156434465040230869 -0.987688340595137728 1.58384440324536294E-01
-170 -0.173648177666930349 -0.984807753012208060 1.76326980708464974E-01
-169 -0.190808995376544813 -0.981627183447663955 1.94380309137718485E-01
-168 -0.207911690817759337 -0.978147600733805637 2.12556561670022125E-01
-167 -0.224951054343864998 -0.974370064785235228 2.30868191125563112E-01
-166 -0.241921895599667722 -0.970295726275996473 2.49328002843180691E-01
-165 -0.258819045102520762 -0.965925826289068289 2.67949192431122705E-01
-164 -0.275637355816999186 -0.961261695938318863 2.86745385758807940E-01
-163 -0.292371704722736728 -0.956304755963035483 3.05730681458660355E-01
-162 -0.309016994374947423 -0.951056516295153574 3.24919696232906324E-01
-161 -0.325568154457156668 -0.945518575599316810 3.44327613289665241E-01
-160 -0.342020143325668734 -0.939692620785908382 3.63970234266202363E-01
-159 -0.358367949545300273 -0.933580426497201748 3.83864035035415796E-01
-158 -0.374606593415912035 -0.927183854566787401 4.04026225835156811E-01
-157 -0.390731128489273753 -0.920504853452440329 4.24474816209604739E-01
-156 -0.406736643075800207 -0.913545457642600895 4.45228685308536163E-01
-155 -0.422618261740699438 -0.906307787036649962 4.66307658154998595E-01
-154 -0.438371146789077419 -0.898794046299166993 4.87732588565861424E-01
-153 -0.453990499739546791 -0.891006524188367861 5.09525449494428811E-01
-152 -0.469471562785890776 -0.882947592858926941 5.31709431661478749E-01
-151 -0.484809620246337029 -0.874619707139395801 5.54309051452768917E-01
-150 -0.500000000000000001 -0.866025403784438647 5.77350269189625766E-01
-149 -0.515038074910054210 -0.857167300702112288 6.00860619027560414E-01
-148 -0.529919264233204955 -0.848048096156425969 6.24869351909327512E-01
-147 -0.544639035015027081 -0.838670567945424029 6.49407593197510576E-01
-146 -0.559192903470746829 -0.829037572555041693 6.74508516842426630E-01
-145 -0.573576436351046096 -0.819152044288991790 7.00207538209709779E-01
-144 -0.587785252292473129 -0.809016994374947424 7.26542528005360886E-01
-143 -0.601815023152048278 -0.798635510047292846 7.53554050102794155E-01
-142 -0.615661475325658280 -0.788010753606721956 7.81285626506717398E-01
-141 -0.629320391049837454 -0.777145961456970881 8.09784033195007149E-01
-140 -0.642787609686539326 -0.766044443118978035 8.39099631177280012E-01
-139 -0.656059028990507285 -0.754709580222771999 8.69286737816226661E-01
-138 -0.669130606358858214 -0.743144825477394236 9.00404044297839944E-01
-137 -0.681998360062498501 -0.731353701619170482 9.32515086137661708E-01
-136 -0.694658370458997285 -0.719339800338651138 9.65688774807074045E-01
-135 -0.707106781186547523 -0.707106781186547523 1.00000000000000000E+00
-134 -0.719339800338651138 -0.694658370458997285 1.03553031379056951E+00
-133 -0.731353701619170482 -0.681998360062498501 1.07236871002468253E+00
-132 -0.743144825477394236 -0.669130606358858214 1.11061251482919287E+00
-131 -0.754709580222771999 -0.656059028990507285 1.15036840722100956E+00
-130 -0.766044443118978035 -0.642787609686539326 1.19175359259420996E+00
-129 -0.777145961456970881 -0.629320391049837454 1.23489715653505140E+00
-128 -0.788010753606721956 -0.615661475325658280 1.27994163219307878E+00
-127 -0.798635510047292846 -0.601815023152048278 1.32704482162041004E+00
-126 -0.809016994374947424 -0.587785252292473129 1.37638192047117354E+00
-125 -0.819152044288991790 -0.573576436351046096 1.42814800674211450E+00
-124 -0.829037572555041693 -0.559192903470746829 1.48256096851274026E+00
-123 -0.838670567945424029 -0.544639035015027081 1.53986496381458291E+00
-122 -0.848048096156425969 -0.529919264233204955 1.60033452904105035E+00
-121 -0.857167300702112288 -0.515038074910054210 1.66427948235051791E+00
x Sin(x) Cos(x) Tan(x)
-120 -0.866025403784438647 -0.500000000000000001 1.73205080756887729E+00
-119 -0.874619707139395801 -0.484809620246337029 1.80404775527142394E+00
-118 -0.882947592858926941 -0.469471562785890776 1.88072646534633201E+00
-117 -0.891006524188367861 -0.453990499739546791 1.96261050550515058E+00
-116 -0.898794046299166993 -0.438371146789077419 2.05030384157929621E+00
-115 -0.906307787036649962 -0.422618261740699438 2.14450692050955860E+00
-114 -0.913545457642600895 -0.406736643075800207 2.24603677390421606E+00
-113 -0.920504853452440329 -0.390731128489273753 2.35585236582375285E+00
-112 -0.927183854566787401 -0.374606593415912035 2.47508685341629583E+00
-111 -0.933580426497201748 -0.358367949545300273 2.60508906469380154E+00
-110 -0.939692620785908382 -0.342020143325668734 2.74747741945462227E+00
-109 -0.945518575599316810 -0.325568154457156668 2.90421087767582281E+00
-108 -0.951056516295153574 -0.309016994374947423 3.07768353717525342E+00
-107 -0.956304755963035483 -0.292371704722736728 3.27085261848414087E+00
-106 -0.961261695938318863 -0.275637355816999186 3.48741444384090865E+00
-105 -0.965925826289068289 -0.258819045102520762 3.73205080756887731E+00
-104 -0.970295726275996473 -0.241921895599667722 4.01078093353584473E+00
-103 -0.974370064785235228 -0.224951054343864998 4.33147587428415554E+00
-102 -0.978147600733805637 -0.207911690817759337 4.70463010947845423E+00
-101 -0.981627183447663955 -0.190808995376544813 5.14455401597031013E+00
-100 -0.984807753012208060 -0.173648177666930349 5.67128181961770953E+00
-99 -0.987688340595137728 -0.156434465040230869 6.31375151467504311E+00
-98 -0.990268068741570314 -0.139173100960065444 7.11536972238420875E+00
-97 -0.992546151641322033 -0.121869343405147481 8.14434642797459402E+00
-96 -0.994521895368273335 -0.104528463267653471 9.51436445422258495E+00
-95 -0.996194698091745533 -0.087155742747658174 1.14300523027613431E+01
-94 -0.997564050259824247 -0.069756473744125301 1.43006662567119280E+01
-93 -0.998629534754573875 -0.052335956242943833 1.90811366877282111E+01
-92 -0.999390827019095730 -0.034899496702500972 2.86362532829156036E+01
-91 -0.999847695156391238 -0.017452406437283513 5.72899616307594247E+01
-90 -1.000000000000000000 0.000000000000000000 -9.99999999999999999E+49
-89 -0.999847695156391238 0.017452406437283513 -5.72899616307594247E+01
-88 -0.999390827019095730 0.034899496702500972 -2.86362532829156036E+01
-87 -0.998629534754573875 0.052335956242943833 -1.90811366877282111E+01
-86 -0.997564050259824247 0.069756473744125301 -1.43006662567119280E+01
-85 -0.996194698091745533 0.087155742747658174 -1.14300523027613431E+01
-84 -0.994521895368273335 0.104528463267653471 -9.51436445422258495E+00
-83 -0.992546151641322033 0.121869343405147481 -8.14434642797459402E+00
-82 -0.990268068741570314 0.139173100960065444 -7.11536972238420875E+00
-81 -0.987688340595137728 0.156434465040230869 -6.31375151467504311E+00
-80 -0.984807753012208060 0.173648177666930349 -5.67128181961770953E+00
-79 -0.981627183447663955 0.190808995376544813 -5.14455401597031013E+00
-78 -0.978147600733805637 0.207911690817759337 -4.70463010947845423E+00
-77 -0.974370064785235228 0.224951054343864998 -4.33147587428415554E+00
-76 -0.970295726275996473 0.241921895599667722 -4.01078093353584473E+00
-75 -0.965925826289068289 0.258819045102520762 -3.73205080756887731E+00
-74 -0.961261695938318863 0.275637355816999186 -3.48741444384090865E+00
-73 -0.956304755963035483 0.292371704722736728 -3.27085261848414087E+00
-72 -0.951056516295153574 0.309016994374947423 -3.07768353717525342E+00
-71 -0.945518575599316810 0.325568154457156668 -2.90421087767582281E+00
-70 -0.939692620785908382 0.342020143325668734 -2.74747741945462227E+00
-69 -0.933580426497201748 0.358367949545300273 -2.60508906469380154E+00
-68 -0.927183854566787401 0.374606593415912035 -2.47508685341629583E+00
-67 -0.920504853452440329 0.390731128489273753 -2.35585236582375285E+00
-66 -0.913545457642600895 0.406736643075800207 -2.24603677390421606E+00
-65 -0.906307787036649962 0.422618261740699438 -2.14450692050955860E+00
-64 -0.898794046299166993 0.438371146789077419 -2.05030384157929621E+00
-63 -0.891006524188367861 0.453990499739546791 -1.96261050550515058E+00
-62 -0.882947592858926941 0.469471562785890776 -1.88072646534633201E+00
-61 -0.874619707139395801 0.484809620246337029 -1.80404775527142394E+00
x Sin(x) Cos(x) Tan(x)
-60 -0.866025403784438647 0.500000000000000001 -1.73205080756887729E+00
-59 -0.857167300702112288 0.515038074910054210 -1.66427948235051791E+00
-58 -0.848048096156425969 0.529919264233204955 -1.60033452904105035E+00
-57 -0.838670567945424029 0.544639035015027081 -1.53986496381458291E+00
-56 -0.829037572555041693 0.559192903470746829 -1.48256096851274026E+00
-55 -0.819152044288991790 0.573576436351046096 -1.42814800674211450E+00
-54 -0.809016994374947424 0.587785252292473129 -1.37638192047117354E+00
-53 -0.798635510047292846 0.601815023152048278 -1.32704482162041004E+00
-52 -0.788010753606721956 0.615661475325658280 -1.27994163219307878E+00
-51 -0.777145961456970881 0.629320391049837454 -1.23489715653505140E+00
-50 -0.766044443118978035 0.642787609686539326 -1.19175359259420996E+00
-49 -0.754709580222771999 0.656059028990507285 -1.15036840722100956E+00
-48 -0.743144825477394236 0.669130606358858214 -1.11061251482919287E+00
-47 -0.731353701619170482 0.681998360062498501 -1.07236871002468253E+00
-46 -0.719339800338651138 0.694658370458997285 -1.03553031379056951E+00
-45 -0.707106781186547523 0.707106781186547523 -1.00000000000000000E+00
-44 -0.694658370458997285 0.719339800338651138 -9.65688774807074045E-01
-43 -0.681998360062498501 0.731353701619170482 -9.32515086137661708E-01
-42 -0.669130606358858214 0.743144825477394236 -9.00404044297839944E-01
-41 -0.656059028990507285 0.754709580222771999 -8.69286737816226661E-01
-40 -0.642787609686539326 0.766044443118978035 -8.39099631177280012E-01
-39 -0.629320391049837454 0.777145961456970881 -8.09784033195007149E-01
-38 -0.615661475325658280 0.788010753606721956 -7.81285626506717398E-01
-37 -0.601815023152048278 0.798635510047292846 -7.53554050102794155E-01
-36 -0.587785252292473129 0.809016994374947424 -7.26542528005360886E-01
-35 -0.573576436351046096 0.819152044288991790 -7.00207538209709779E-01
-34 -0.559192903470746829 0.829037572555041693 -6.74508516842426630E-01
-33 -0.544639035015027081 0.838670567945424029 -6.49407593197510576E-01
-32 -0.529919264233204955 0.848048096156425969 -6.24869351909327512E-01
-31 -0.515038074910054210 0.857167300702112288 -6.00860619027560414E-01
-30 -0.500000000000000001 0.866025403784438647 -5.77350269189625766E-01
-29 -0.484809620246337029 0.874619707139395801 -5.54309051452768917E-01
-28 -0.469471562785890776 0.882947592858926941 -5.31709431661478749E-01
-27 -0.453990499739546791 0.891006524188367861 -5.09525449494428811E-01
-26 -0.438371146789077419 0.898794046299166993 -4.87732588565861424E-01
-25 -0.422618261740699438 0.906307787036649962 -4.66307658154998595E-01
-24 -0.406736643075800207 0.913545457642600895 -4.45228685308536163E-01
-23 -0.390731128489273753 0.920504853452440329 -4.24474816209604739E-01
-22 -0.374606593415912035 0.927183854566787401 -4.04026225835156811E-01
-21 -0.358367949545300273 0.933580426497201748 -3.83864035035415796E-01
-20 -0.342020143325668734 0.939692620785908382 -3.63970234266202363E-01
-19 -0.325568154457156668 0.945518575599316810 -3.44327613289665241E-01
-18 -0.309016994374947423 0.951056516295153574 -3.24919696232906324E-01
-17 -0.292371704722736728 0.956304755963035483 -3.05730681458660355E-01
-16 -0.275637355816999186 0.961261695938318863 -2.86745385758807940E-01
-15 -0.258819045102520762 0.965925826289068289 -2.67949192431122705E-01
-14 -0.241921895599667722 0.970295726275996473 -2.49328002843180691E-01
-13 -0.224951054343864998 0.974370064785235228 -2.30868191125563112E-01
-12 -0.207911690817759337 0.978147600733805637 -2.12556561670022125E-01
-11 -0.190808995376544813 0.981627183447663955 -1.94380309137718485E-01
-10 -0.173648177666930349 0.984807753012208060 -1.76326980708464974E-01
-9 -0.156434465040230869 0.987688340595137728 -1.58384440324536294E-01
-8 -0.139173100960065444 0.990268068741570314 -1.40540834702391447E-01
-7 -0.121869343405147481 0.992546151641322033 -1.22784560902904591E-01
-6 -0.104528463267653471 0.994521895368273335 -1.05104235265676462E-01
-5 -0.087155742747658174 0.996194698091745533 -8.74886635259240053E-02
-4 -0.069756473744125301 0.997564050259824247 -6.99268119435104134E-02
-3 -0.052335956242943833 0.998629534754573875 -5.24077792830412040E-02
-2 -0.034899496702500972 0.999390827019095730 -3.49207694917477305E-02
-1 -0.017452406437283513 0.999847695156391238 -1.74550649282175858E-02
x Sin(x) Cos(x) Tan(x)
0 0.000000000000000000 1.000000000000000000 0.00000000000000000E+00
1 0.017452406437283513 0.999847695156391238 1.74550649282175858E-02
2 0.034899496702500972 0.999390827019095730 3.49207694917477305E-02
3 0.052335956242943833 0.998629534754573875 5.24077792830412040E-02
4 0.069756473744125301 0.997564050259824247 6.99268119435104134E-02
5 0.087155742747658174 0.996194698091745533 8.74886635259240053E-02
6 0.104528463267653471 0.994521895368273335 1.05104235265676462E-01
7 0.121869343405147481 0.992546151641322033 1.22784560902904591E-01
8 0.139173100960065444 0.990268068741570314 1.40540834702391447E-01
9 0.156434465040230869 0.987688340595137728 1.58384440324536294E-01
10 0.173648177666930349 0.984807753012208060 1.76326980708464974E-01
11 0.190808995376544813 0.981627183447663955 1.94380309137718485E-01
12 0.207911690817759337 0.978147600733805637 2.12556561670022125E-01
13 0.224951054343864998 0.974370064785235228 2.30868191125563112E-01
14 0.241921895599667722 0.970295726275996473 2.49328002843180691E-01
15 0.258819045102520762 0.965925826289068289 2.67949192431122705E-01
16 0.275637355816999186 0.961261695938318863 2.86745385758807940E-01
17 0.292371704722736728 0.956304755963035483 3.05730681458660355E-01
18 0.309016994374947423 0.951056516295153574 3.24919696232906324E-01
19 0.325568154457156668 0.945518575599316810 3.44327613289665241E-01
20 0.342020143325668734 0.939692620785908382 3.63970234266202363E-01
21 0.358367949545300273 0.933580426497201748 3.83864035035415796E-01
22 0.374606593415912035 0.927183854566787401 4.04026225835156811E-01
23 0.390731128489273753 0.920504853452440329 4.24474816209604739E-01
24 0.406736643075800207 0.913545457642600895 4.45228685308536163E-01
25 0.422618261740699438 0.906307787036649962 4.66307658154998595E-01
26 0.438371146789077419 0.898794046299166993 4.87732588565861424E-01
27 0.453990499739546791 0.891006524188367861 5.09525449494428811E-01
28 0.469471562785890776 0.882947592858926941 5.31709431661478749E-01
29 0.484809620246337029 0.874619707139395801 5.54309051452768917E-01
30 0.500000000000000001 0.866025403784438647 5.77350269189625766E-01
31 0.515038074910054210 0.857167300702112288 6.00860619027560414E-01
32 0.529919264233204955 0.848048096156425969 6.24869351909327512E-01
33 0.544639035015027081 0.838670567945424029 6.49407593197510576E-01
34 0.559192903470746829 0.829037572555041693 6.74508516842426630E-01
35 0.573576436351046096 0.819152044288991790 7.00207538209709779E-01
36 0.587785252292473129 0.809016994374947424 7.26542528005360886E-01
37 0.601815023152048278 0.798635510047292846 7.53554050102794155E-01
38 0.615661475325658280 0.788010753606721956 7.81285626506717398E-01
39 0.629320391049837454 0.777145961456970881 8.09784033195007149E-01
40 0.642787609686539326 0.766044443118978035 8.39099631177280012E-01
41 0.656059028990507285 0.754709580222771999 8.69286737816226661E-01
42 0.669130606358858214 0.743144825477394236 9.00404044297839944E-01
43 0.681998360062498501 0.731353701619170482 9.32515086137661708E-01
44 0.694658370458997285 0.719339800338651138 9.65688774807074045E-01
45 0.707106781186547523 0.707106781186547523 1.00000000000000000E+00
46 0.719339800338651138 0.694658370458997285 1.03553031379056951E+00
47 0.731353701619170482 0.681998360062498501 1.07236871002468253E+00
48 0.743144825477394236 0.669130606358858214 1.11061251482919287E+00
49 0.754709580222771999 0.656059028990507285 1.15036840722100956E+00
50 0.766044443118978035 0.642787609686539326 1.19175359259420996E+00
51 0.777145961456970881 0.629320391049837454 1.23489715653505140E+00
52 0.788010753606721956 0.615661475325658280 1.27994163219307878E+00
53 0.798635510047292846 0.601815023152048278 1.32704482162041004E+00
54 0.809016994374947424 0.587785252292473129 1.37638192047117354E+00
55 0.819152044288991790 0.573576436351046096 1.42814800674211450E+00
56 0.829037572555041693 0.559192903470746829 1.48256096851274026E+00
57 0.838670567945424029 0.544639035015027081 1.53986496381458291E+00
58 0.848048096156425969 0.529919264233204955 1.60033452904105035E+00
59 0.857167300702112288 0.515038074910054210 1.66427948235051791E+00
x Sin(x) Cos(x) Tan(x)
60 0.866025403784438647 0.500000000000000001 1.73205080756887729E+00
61 0.874619707139395801 0.484809620246337029 1.80404775527142394E+00
62 0.882947592858926941 0.469471562785890776 1.88072646534633201E+00
63 0.891006524188367861 0.453990499739546791 1.96261050550515058E+00
64 0.898794046299166993 0.438371146789077419 2.05030384157929621E+00
65 0.906307787036649962 0.422618261740699438 2.14450692050955860E+00
66 0.913545457642600895 0.406736643075800207 2.24603677390421606E+00
67 0.920504853452440329 0.390731128489273753 2.35585236582375285E+00
68 0.927183854566787401 0.374606593415912035 2.47508685341629583E+00
69 0.933580426497201748 0.358367949545300273 2.60508906469380154E+00
70 0.939692620785908382 0.342020143325668734 2.74747741945462227E+00
71 0.945518575599316810 0.325568154457156668 2.90421087767582281E+00
72 0.951056516295153574 0.309016994374947423 3.07768353717525342E+00
73 0.956304755963035483 0.292371704722736728 3.27085261848414087E+00
74 0.961261695938318863 0.275637355816999186 3.48741444384090865E+00
75 0.965925826289068289 0.258819045102520762 3.73205080756887731E+00
76 0.970295726275996473 0.241921895599667722 4.01078093353584473E+00
77 0.974370064785235228 0.224951054343864998 4.33147587428415554E+00
78 0.978147600733805637 0.207911690817759337 4.70463010947845423E+00
79 0.981627183447663955 0.190808995376544813 5.14455401597031013E+00
80 0.984807753012208060 0.173648177666930349 5.67128181961770953E+00
81 0.987688340595137728 0.156434465040230869 6.31375151467504311E+00
82 0.990268068741570314 0.139173100960065444 7.11536972238420875E+00
83 0.992546151641322033 0.121869343405147481 8.14434642797459402E+00
84 0.994521895368273335 0.104528463267653471 9.51436445422258495E+00
85 0.996194698091745533 0.087155742747658174 1.14300523027613431E+01
86 0.997564050259824247 0.069756473744125301 1.43006662567119280E+01
87 0.998629534754573875 0.052335956242943833 1.90811366877282111E+01
88 0.999390827019095730 0.034899496702500972 2.86362532829156036E+01
89 0.999847695156391238 0.017452406437283513 5.72899616307594247E+01
90 1.000000000000000000 0.000000000000000000 9.99999999999999999E+49
91 0.999847695156391238 -0.017452406437283513 -5.72899616307594247E+01
92 0.999390827019095730 -0.034899496702500972 -2.86362532829156036E+01
93 0.998629534754573875 -0.052335956242943833 -1.90811366877282111E+01
94 0.997564050259824247 -0.069756473744125301 -1.43006662567119280E+01
95 0.996194698091745533 -0.087155742747658174 -1.14300523027613431E+01
96 0.994521895368273335 -0.104528463267653471 -9.51436445422258495E+00
97 0.992546151641322033 -0.121869343405147481 -8.14434642797459402E+00
98 0.990268068741570314 -0.139173100960065444 -7.11536972238420875E+00
99 0.987688340595137728 -0.156434465040230869 -6.31375151467504311E+00
100 0.984807753012208060 -0.173648177666930349 -5.67128181961770953E+00
101 0.981627183447663955 -0.190808995376544813 -5.14455401597031013E+00
102 0.978147600733805637 -0.207911690817759337 -4.70463010947845423E+00
103 0.974370064785235228 -0.224951054343864998 -4.33147587428415554E+00
104 0.970295726275996473 -0.241921895599667722 -4.01078093353584473E+00
105 0.965925826289068289 -0.258819045102520762 -3.73205080756887731E+00
106 0.961261695938318863 -0.275637355816999186 -3.48741444384090865E+00
107 0.956304755963035483 -0.292371704722736728 -3.27085261848414087E+00
108 0.951056516295153574 -0.309016994374947423 -3.07768353717525342E+00
109 0.945518575599316810 -0.325568154457156668 -2.90421087767582281E+00
110 0.939692620785908382 -0.342020143325668734 -2.74747741945462227E+00
111 0.933580426497201748 -0.358367949545300273 -2.60508906469380154E+00
112 0.927183854566787401 -0.374606593415912035 -2.47508685341629583E+00
113 0.920504853452440329 -0.390731128489273753 -2.35585236582375285E+00
114 0.913545457642600895 -0.406736643075800207 -2.24603677390421606E+00
115 0.906307787036649962 -0.422618261740699438 -2.14450692050955860E+00
116 0.898794046299166993 -0.438371146789077419 -2.05030384157929621E+00
117 0.891006524188367861 -0.453990499739546791 -1.96261050550515058E+00
118 0.882947592858926941 -0.469471562785890776 -1.88072646534633201E+00
119 0.874619707139395801 -0.484809620246337029 -1.80404775527142394E+00
x Sin(x) Cos(x) Tan(x)
120 0.866025403784438647 -0.500000000000000001 -1.73205080756887729E+00
121 0.857167300702112288 -0.515038074910054210 -1.66427948235051791E+00
122 0.848048096156425969 -0.529919264233204955 -1.60033452904105035E+00
123 0.838670567945424029 -0.544639035015027081 -1.53986496381458291E+00
124 0.829037572555041693 -0.559192903470746829 -1.48256096851274026E+00
125 0.819152044288991790 -0.573576436351046096 -1.42814800674211450E+00
126 0.809016994374947424 -0.587785252292473129 -1.37638192047117354E+00
127 0.798635510047292846 -0.601815023152048278 -1.32704482162041004E+00
128 0.788010753606721956 -0.615661475325658280 -1.27994163219307878E+00
129 0.777145961456970881 -0.629320391049837454 -1.23489715653505140E+00
130 0.766044443118978035 -0.642787609686539326 -1.19175359259420996E+00
131 0.754709580222771999 -0.656059028990507285 -1.15036840722100956E+00
132 0.743144825477394236 -0.669130606358858214 -1.11061251482919287E+00
133 0.731353701619170482 -0.681998360062498501 -1.07236871002468253E+00
134 0.719339800338651138 -0.694658370458997285 -1.03553031379056951E+00
135 0.707106781186547523 -0.707106781186547523 -1.00000000000000000E+00
136 0.694658370458997285 -0.719339800338651138 -9.65688774807074045E-01
137 0.681998360062498501 -0.731353701619170482 -9.32515086137661708E-01
138 0.669130606358858214 -0.743144825477394236 -9.00404044297839944E-01
139 0.656059028990507285 -0.754709580222771999 -8.69286737816226661E-01
140 0.642787609686539326 -0.766044443118978035 -8.39099631177280012E-01
141 0.629320391049837454 -0.777145961456970881 -8.09784033195007149E-01
142 0.615661475325658280 -0.788010753606721956 -7.81285626506717398E-01
143 0.601815023152048278 -0.798635510047292846 -7.53554050102794155E-01
144 0.587785252292473129 -0.809016994374947424 -7.26542528005360886E-01
145 0.573576436351046096 -0.819152044288991790 -7.00207538209709779E-01
146 0.559192903470746829 -0.829037572555041693 -6.74508516842426630E-01
147 0.544639035015027081 -0.838670567945424029 -6.49407593197510576E-01
148 0.529919264233204955 -0.848048096156425969 -6.24869351909327512E-01
149 0.515038074910054210 -0.857167300702112288 -6.00860619027560414E-01
150 0.500000000000000001 -0.866025403784438647 -5.77350269189625766E-01
151 0.484809620246337029 -0.874619707139395801 -5.54309051452768917E-01
152 0.469471562785890776 -0.882947592858926941 -5.31709431661478749E-01
153 0.453990499739546791 -0.891006524188367861 -5.09525449494428811E-01
154 0.438371146789077419 -0.898794046299166993 -4.87732588565861424E-01
155 0.422618261740699438 -0.906307787036649962 -4.66307658154998595E-01
156 0.406736643075800207 -0.913545457642600895 -4.45228685308536163E-01
157 0.390731128489273753 -0.920504853452440329 -4.24474816209604739E-01
158 0.374606593415912035 -0.927183854566787401 -4.04026225835156811E-01
159 0.358367949545300273 -0.933580426497201748 -3.83864035035415796E-01
160 0.342020143325668734 -0.939692620785908382 -3.63970234266202363E-01
161 0.325568154457156668 -0.945518575599316810 -3.44327613289665241E-01
162 0.309016994374947423 -0.951056516295153574 -3.24919696232906324E-01
163 0.292371704722736728 -0.956304755963035483 -3.05730681458660355E-01
164 0.275637355816999186 -0.961261695938318863 -2.86745385758807940E-01
165 0.258819045102520762 -0.965925826289068289 -2.67949192431122705E-01
166 0.241921895599667722 -0.970295726275996473 -2.49328002843180691E-01
167 0.224951054343864998 -0.974370064785235228 -2.30868191125563112E-01
168 0.207911690817759337 -0.978147600733805637 -2.12556561670022125E-01
169 0.190808995376544813 -0.981627183447663955 -1.94380309137718485E-01
170 0.173648177666930349 -0.984807753012208060 -1.76326980708464974E-01
171 0.156434465040230869 -0.987688340595137728 -1.58384440324536294E-01
172 0.139173100960065444 -0.990268068741570314 -1.40540834702391447E-01
173 0.121869343405147481 -0.992546151641322033 -1.22784560902904591E-01
174 0.104528463267653471 -0.994521895368273335 -1.05104235265676462E-01
175 0.087155742747658174 -0.996194698091745533 -8.74886635259240053E-02
176 0.069756473744125301 -0.997564050259824247 -6.99268119435104134E-02
177 0.052335956242943833 -0.998629534754573875 -5.24077792830412040E-02
178 0.034899496702500972 -0.999390827019095730 -3.49207694917477305E-02
179 0.017452406437283513 -0.999847695156391238 -1.74550649282175858E-02
x ArcSin(x) ArcCos(x) ArcTan(x)
-1.0 -90.000000000000000000 180.000000000000000000 -45.000000000000000300
-0.9 -64.158067236832871500 154.158067236832871000 -41.987212495816659900
-0.8 -53.130102354155979000 143.130102354155979000 -38.659808254090090300
-0.7 -44.427004000805703500 134.427004000805705000 -34.992020198558661800
-0.6 -36.869897645844021100 126.869897645844022000 -30.963756532073521100
-0.5 -29.999999999999999800 120.000000000000000000 -26.565051177077989100
-0.4 -23.578178478201830900 113.578178478201832000 -21.801409486351811500
-0.3 -17.457603123722092100 107.457603123722093000 -16.699244233993621600
-0.2 -11.536959032815487700 101.536959032815488000 -11.309932474020213100
-0.1 -5.739170477266786350 95.739170477266787000 -5.710593137499642520
0.0 0.000000000000000000 90.000000000000000600 0.000000000000000000
0.1 5.739170477266786350 84.260829522733213200 5.710593137499642520
0.2 11.536959032815487700 78.463040967184512000 11.309932474020213100
0.3 17.457603123722092100 72.542396876277907400 16.699244233993621600
0.4 23.578178478201830900 66.421821521798168400 21.801409486351811500
0.5 29.999999999999999800 59.999999999999999600 26.565051177077989100
0.6 36.869897645844021100 53.130102354155978200 30.963756532073521100
0.7 44.427004000805703500 45.572995999194296000 34.992020198558661800
0.8 53.130102354155979000 36.869897645844020800 38.659808254090090300
0.9 64.158067236832871500 25.841932763167128800 41.987212495816659900
1.0 90.000000000000000000 0.000000000000000000 45.000000000000000300
-150.0 ------------ ------------ -89.618033795270974600
-140.0 ------------ ------------ -89.590751391965061500
-130.0 ------------ ------------ -89.559271927238986100
-120.0 ------------ ------------ -89.522546222690422600
-110.0 ------------ ------------ -89.479143625498041400
-100.0 ------------ ------------ -89.427061302316514100
-90.0 ------------ ------------ -89.363406424036513800
-80.0 ------------ ------------ -89.283840054529591500
-70.0 ------------ ------------ -89.181544538311385700
-60.0 ------------ ------------ -89.045158746127811300
-50.0 ------------ ------------ -88.854237161824896900
-40.0 ------------ ------------ -88.567903815835353700
-30.0 ------------ ------------ -88.090847567003623700
-20.0 ------------ ------------ -87.137594773888252600
-10.0 ------------ ------------ -84.289406862500357400
10.0 ------------ ------------ 84.289406862500357400
20.0 ------------ ------------ 87.137594773888252600
30.0 ------------ ------------ 88.090847567003623700
40.0 ------------ ------------ 88.567903815835353700
50.0 ------------ ------------ 88.854237161824896900
60.0 ------------ ------------ 89.045158746127811300
70.0 ------------ ------------ 89.181544538311385700
80.0 ------------ ------------ 89.283840054529591500
90.0 ------------ ------------ 89.363406424036513800
100.0 ------------ ------------ 89.427061302316514100
110.0 ------------ ------------ 89.479143625498041400
120.0 ------------ ------------ 89.522546222690422600
130.0 ------------ ------------ 89.559271927238986100
140.0 ------------ ------------ 89.590751391965061500
150.0 ------------ ------------ 89.618033795270974600
ArcSin(ArcCos(ArcTan(Tan(Cos(Sin(9)))))) = 8.999999999996491040
-----------------------------------------------------------------------------------------------------
|