Published
Edited
May 22, 2022
Importers
5 stars
Insert cell
Insert cell
Insert cell
tanpi_2_alt = function tanpi_2(x) {
var y = (1 - x*x);
return x * (-0.0187108 * y + 0.31583526 + 1.27365776 / y);
}
Insert cell
Insert cell
tanpi_2 = function tanpi_2(x) {
var y = (1 - x*x);
return x * (((-0.000221184 * y + 0.0024971104) * y - 0.02301937096) * y
+ 0.3182994604 + 1.2732402998 / y);
}
Insert cell
Insert cell
Insert cell
atan2_pi = (x) => Math.atan(x) * 2 / Math.PI
Insert cell
[-0.3, -0.0001, 0, 0.87, 0.9999, 1]
.map(a => atan2_pi(tanpi_2_alt(a)) - a)
Insert cell
[-0.3, -0.0001, 0, 0.87, 0.9999, 1]
.map(a => atan2_pi(tanpi_2(a)) - a)
Insert cell
Insert cell
Insert cell
Insert cell
tanpi_2_fulldomain = {
var C = 2**54;
return (x) => {
var S = C * ((x > 0) - (x < 0));
x -= (x - S) + S; // reduce range to -1...1
var y = (1 - x*x);
return x * (((-0.00023552 * y + 0.002530368) * y - 0.023045536) * y
+ 0.3183073636 + 1.2732395912 / y);
}
}
Insert cell
[-100.3, 99.7, 6, 1000, -1.000005, 10000.999995, -1, 9]
.map(tanpi_2_fulldomain)
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more