Age | Commit message (Collapse) | Author | |
---|---|---|---|

2018-08-05 | We can pick fma generically at compile time. | Ori Bernstein | |

It's a trait, and because the functions are generic, they already know the type. | |||

2018-08-05 | We don't need the impls in sin-impl. | Ori Bernstein | |

2018-08-03 | Clean up previous fixes. | Ori Bernstein | |

The externs were already defined, they just needed to be moved out to prevent cyclic dependencies. | |||

2018-08-03 | Fix build on Linux. | Ori Bernstein | |

2018-07-31 | Include test cases for all (relevant) sub-polynomials of atan. | S. Gilles | |

2018-07-31 | Correct extra-precision division typo for atan. | S. Gilles | |

2018-07-31 | Correctly compute u, du for y/x in atan. | S. Gilles | |

Also, apparently the C tables gave negatives. That's probably a mistake. | |||

2018-07-31 | Improve accuracy of poly path of atan calculations. | S. Gilles | |

2018-07-31 | Negate atan properly when atan(1/x) is computed. | S. Gilles | |

2018-07-31 | First compiling atan. | S. Gilles | |

2018-07-24 | Adjust leeway in arctan tuple generator. | S. Gilles | |

2018-07-24 | Document that generate-minimax-by-Remez.gp has issues. | S. Gilles | |

2018-07-24 | Add tuple-generation for arctan. | S. Gilles | |

2018-07-23 | Handle awkward special cases in tan/cot32. | S. Gilles | |

2018-07-22 | Test Highly Accurate Tables for tan() and cot(). | S. Gilles | |

2018-07-22 | Handle -0.0 correctly in tan() and cot(). | S. Gilles | |

2018-07-22 | Correct typo in cotangent calculations. | S. Gilles | |

2018-07-20 | Ensure tan(NaN) is a [q]NaN. | S. Gilles | |

2018-07-20 | First compiling tan/cot functions. | S. Gilles | |

2018-07-15 | Update triple-generate to also compute tables for tan and cot. | S. Gilles | |

2018-06-30 | Document results of sin/cos a bit more. | S. Gilles | |

2018-06-30 | Eliminate loop sorts in sin/cos reduction. | S. Gilles | |

2018-06-30 | Cut down results of reduce() from triple to double for sin/cos. | S. Gilles | |

2018-06-30 | Remove a sort or two in sin/cos. | S. Gilles | |

2018-06-30 | Reduce overkill on precision in a few sum computations for sin/cos. | S. Gilles | |

2018-06-30 | Add test cases for each C[j] constant for sin/cos. | S. Gilles | |

2018-06-30 | Be a little smarter about downscaling flt64s to flt32s in sin/cos. | S. Gilles | |

2018-06-30 | Find nearest xi value, instead of blindly computing j. | S. Gilles | |

2018-06-28 | Fix local reduction from [-pi/2, pi/2] to [-pi/4, pi/4] | S. Gilles | |

2018-06-28 | Rewrite xa, xb, xc calculation in huge_reduce. | S. Gilles | |

2018-06-28 | Initialize variables (fallout from upstream merge?). | S. Gilles | |

2018-06-28 | Merge remote-tracking branch 'ori/master' into sin-cos-work | S. Gilles | |

2018-06-28 | Fix bi/ci calculation in reduction. | S. Gilles | |

2018-06-28 | Add macros for relative error to lib/math/ancillary. | S. Gilles | |

2018-06-28 | Fix pi/2 constants. | S. Gilles | |

2018-06-28 | Fix some errors in sin-impl. | S. Gilles | |

- Remez algorithms don't work when the function to be approximated vanishes (they track relative error, which would go to infinity), so the sin_coeffs needed to be recalculated. - sin and cos were swapped when retrieving from C, so sin(0) was 1. - Negative post-reduction x values needed to be handled better (negating sign before other potential permutations). - Fix huge_reduction by calculating xb from x - xhi, not x. - Change pi/4 for pi/2 (I forgot I was in the middle of doing this halfway through writing it.) | |||

2018-06-27 | Initial (only compile-tested) implementation of sin, cos. | S. Gilles | |

2018-06-26 | Update generators for constants. | S. Gilles | |

Now that the tables of triples have finished calculating, check in the final version. | |||

2018-06-21 | Add ancillary programs for libmath. | S. Gilles | |

Some constants in libmath come from papers, but some come from long computations. Those computations should be reproducible, so that 10 years from now someone can answer the questions "Why are they using 0x3f6921fb53cc441b?" and "Would 0x3f6921fb42e71072 be better?". | |||

2018-06-10 | Implement powr. | S. Gilles | |

This is an attempt to extend the log algorithm of [Tan90] to compute x^y. I don't intend to keep this algorithm for long, since I didn't succeed very well. It's tremendously slow (worse even than mpfr!), and has some truly terrible edge cases. For example, computing pow(0x3f7ff7f3, 0xc7b58adf) (that is, (0.99987715)^(-92949.74)) returns infinity, when it should be 0x47b1d362 (91046.765), which is a dozen orders of magnitude below the infinity border. In more pedestrian cases, errors of up to ~16 ulps can be observed. For example, powr(0x3f80a83e, 0xc65492ba) = (1.0051343)^(-13604.682) should return 0x0d3304a3, but it gives 0x0d3304b4. | |||

2018-05-29 | Add testdeps to libmath. | Ori Bernstein | |

2018-05-13 | Add tests for AES GCM decryption, fix a small bug. | Ori Bernstein | |

2018-05-13 | Merge remote-tracking branch 'ori/master' into libmath | S. Gilles | |

2018-05-13 | Implement log and log1p. | S. Gilles | |

2018-05-13 | Fix posix build. | Ori Bernstein | |

2018-05-13 | Add float trapping controls. | Ori Bernstein | |

This both allows us to error earlier when math goes wonky, and allows us to test all our code on 9front. | |||

2018-05-10 | Use x as input variable instead of f. | S. Gilles | |

Some algorithm descriptions use f as an auxiliary variable. Since we attempt to match variable naming to the relevant algorithm description, this becomes a problem. For uniformity, change everywhere. | |||

2018-05-10 | Remove fma from exp-impl; not needed | S. Gilles | |

2018-05-03 | Finish expm1 using scale2. | S. Gilles | |

2018-05-03 | Implment scale2. | S. Gilles | |

This is, perhaps, a conforming implementation of scalB, but it is highly probable that, in the future, it will be desireable for scalB to accept arbitrary, exponents, not simply integers. Furthermore, we find scalB a non-intuitive name. Therefore, calling the function ‘scale2’ serves two purposes. |