double-double
Version:
Pure double-double precision functions *with strict error bounds*.
27 lines • 931 B
JavaScript
import { ddAddDd } from '../binary/dd-add-dd.js';
import { ddDivDouble } from '../../double-mixed-double-double/dd-div-double.js';
import { PIDd } from '../../constants.js';
import { ddSin } from './dd-sin.js';
// See https://gist.github.com/publik-void/067f7f2fef32dbe5c27d6e215f824c91#sin-abs-error-minimized-degree-33
// Maximum relative error: 1.64002557798425265331386526431095701e-39
// Maximum absolute error: 7.80601195686311420504782780641951757e-41
const PIDd_2 = ddDivDouble(PIDd, 2);
/**
* Returns the cosine of x.
*
* @param θ a double-double precision floating point number
*
* @example
* ```
* import { PIDd } from 'double-double';
* import { ddDivDouble } from 'double-double';
*
* ddCos(ddDivDouble(PIDd,6)); //=> [5.017542110902477e-17, 0.8660254037844386]
* ```
*/
function ddCos(θ) {
const x_ = ddAddDd(θ, PIDd_2);
return ddSin(x_);
}
export { ddCos };
//# sourceMappingURL=dd-cos.js.map