diff options
| author | Paul Eggert | 2012-09-08 12:57:32 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-09-08 12:57:32 -0700 |
| commit | eabf0404414f2828c08d1d5d8fab4740670e7541 (patch) | |
| tree | 221b650766b415e2c0843ea1db5d5e49d8bacebf /src/floatfns.c | |
| parent | 0b3b1d23224845e760ad7ef6e316cbac05f54093 (diff) | |
| download | emacs-eabf0404414f2828c08d1d5d8fab4740670e7541.tar.gz emacs-eabf0404414f2828c08d1d5d8fab4740670e7541.zip | |
* floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
This produces more-accurate results.
Diffstat (limited to 'src/floatfns.c')
| -rw-r--r-- | src/floatfns.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/floatfns.c b/src/floatfns.c index 3a95d828c0c..dfe063b152f 100644 --- a/src/floatfns.c +++ b/src/floatfns.c | |||
| @@ -265,12 +265,12 @@ DEFUN ("tan", Ftan, Stan, 1, 1, 0, | |||
| 265 | (register Lisp_Object arg) | 265 | (register Lisp_Object arg) |
| 266 | { | 266 | { |
| 267 | double d = extract_float (arg); | 267 | double d = extract_float (arg); |
| 268 | double c = cos (d); | ||
| 269 | #ifdef FLOAT_CHECK_DOMAIN | 268 | #ifdef FLOAT_CHECK_DOMAIN |
| 269 | double c = cos (d); | ||
| 270 | if (c == 0.0) | 270 | if (c == 0.0) |
| 271 | domain_error ("tan", arg); | 271 | domain_error ("tan", arg); |
| 272 | #endif | 272 | #endif |
| 273 | IN_FLOAT (d = sin (d) / c, "tan", arg); | 273 | IN_FLOAT (d = tan (d), "tan", arg); |
| 274 | return make_float (d); | 274 | return make_float (d); |
| 275 | } | 275 | } |
| 276 | 276 | ||