# [tbb-bugs] #13018 [Tor Browser]: Determine if high-precision Math routines are fingerprintable

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Oct 9 16:24:34 UTC 2014

```#13018: Determine if high-precision Math routines are fingerprintable
-------------------------+-------------------------------------------------
Reporter:           |      Owner:  tbb-team
mikeperry              |     Status:  new
Priority:  normal   |    Version:
Component:  Tor      |   Keywords:  tbb-fingerprinting, tbb-easy,
Browser                |  ff31-esr, TorBrowserTeam201410Easy
Resolution:           |  Parent ID:
Actual Points:           |
Points:           |
-------------------------+-------------------------------------------------

Comment (by cypherpunks):

Values computed using standard algebraic expression:
{{{
asinh(1) = 0.8813735870195429
acosh(1e300) = NaN
atanh(0.5) = 0.5493061443340549
expm1(1) = 1.718281828459045
log1p(10) = 2.3978952727983707
sinh(1) = 1.1752011936438014
cosh(10) = 11013.232920103324
tanh(1) = 0.7615941559557649
}}}
Using code:
{{{
function asinh(x) {
if (x === -Infinity) {
return x;
} else {
return Math.log(x + Math.sqrt(x * x + 1));
}
}
function acosh(x) {
return Math.log(x + Math.sqrt(x * x - 1));
}
function atanh(x) {
return Math.log((1+x)/(1-x)) / 2;
}
function cbrt(x) {
var y = Math.pow(Math.abs(x), 1/3);
return x < 0 ? -y : y;
}
function cosh(x) {
var y = Math.exp(x);
return (y + 1 / y) / 2;
}
function expm1(x) {
return Math.exp(x) - 1;
}
function log1p(x) {
return Math.log(1 + x);
}
function sinh(x){
var y = Math.exp(x);
return (y - 1/y) / 2;
}
function tanh(x) {
if(x === Infinity) {
return 1;
} else if(x === -Infinity) {
return -1;
} else {
var y = Math.exp(2 * x);
return (y - 1) / (y + 1);
}
}
}}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13018#comment:9>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
```