3 ms·
Here is the construction of the n-ball volume and n-sphere surface area constants up to n=26. Those denominators get crazy. double nbv[27]; double nss[27];
by kloch 4y ago
Here is the construction of the n-ball volume and n-sphere surface area constants up to n=26. Those denominators get crazy.
double nbv[27];
double nss[27];
// n-ball volume constants (index is exponent and n-ball dimension)
// nbv[n] = nss[n-1]/n (n > 0)
// nbv[n] = 2pi * nbv[n-2]/n (n > 1)
nbv[0]= 1.0;
nbv[1]= 2.0;
nbv[2]= M_PI;
nbv[3]= 4.0 * M_PI / 3.0;
nbv[4]= pow(M_PI, 2.0) / 2.0;
nbv[5]= 8.0 * pow(M_PI, 2.0) / 15.0;
nbv[6]= pow(M_PI, 3.0) / 6.0;
nbv[7]= 16.0 * pow(M_PI, 3.0) / 105.0;
nbv[8]= pow(M_PI, 4.0) / 24.0;
nbv[9]= 32.0 * pow(M_PI, 4.0) / 945.0;
nbv[10]= pow(M_PI, 5.0) / 120.0;
nbv[11]= 64.0 * pow(M_PI, 5.0) / 10395.0;
nbv[12]= pow(M_PI, 6.0) / 720.0;
nbv[13]= 128.0 * pow(M_PI, 6.0) / 135135.0;
nbv[14]= pow(M_PI, 7.0) / 5040.0;
nbv[15]= 256.0 * pow(M_PI, 7.0) / 2027025.0;
nbv[16]= pow(M_PI, 8.0) / 40320.0;
nbv[17]= 512.0 * pow(M_PI, 8.0) / 34459425.0;
nbv[18]= pow(M_PI, 9.0) / 362880.0;
nbv[19]=1024.0 * pow(M_PI, 9.0) / 654729075.0;
nbv[20]= pow(M_PI, 10.0) / 3628800.0;
nbv[21]=2048.0 * pow(M_PI, 10.0) / 13749310575.0;
nbv[22]= pow(M_PI, 11.0) / 39916800.0;
nbv[23]=4096.0 * pow(M_PI, 11.0) / 316234143225.0;
nbv[24]= pow(M_PI, 12.0) / 479001600.0;
nbv[25]=8192.0 * pow(M_PI, 12.0) / 7905853580625.0;
nbv[26]= pow(M_PI, 13.0) / 6227020800.0;
// n-sphere surface area constants (index is exponent and n-sphere dimension and n-ball dimension - 1)
// nss[n] = 2pi * nbv[n-1] (n > 0)
nss[0]= 2.0;
nss[1]= 2.0 * M_PI;
nss[2]= 4.0 * M_PI;
nss[3]= 2.0 * pow(M_PI, 2.0);
nss[4]= 8.0 * pow(M_PI, 2.0) / 3.0;
nss[5]= pow(M_PI, 3.0);
nss[6]= 16.0 * pow(M_PI, 3.0) / 15.0;
nss[7]= pow(M_PI, 4.0) / 3.0;
nss[8]= 32.0 * pow(M_PI, 4.0) / 105.0;
nss[9]= pow(M_PI, 5.0) / 12.0;
nss[10]= 64.0 * pow(M_PI, 5.0) / 945.0;
nss[11]= pow(M_PI, 6.0) / 60.0;
nss[12]= 128.0 * pow(M_PI, 6.0) / 10395.0;
nss[13]= pow(M_PI, 7.0) / 360.0;
nss[14]= 256.0 * pow(M_PI, 7.0) / 135135.0;
nss[15]= pow(M_PI, 8.0) / 2520.0;
nss[16]= 512.0 * pow(M_PI, 8.0) / 2027025.0;
nss[17]= pow(M_PI, 9.0) / 20160.0;
nss[18]= 1024.0 * pow(M_PI, 9.0) / 34459425.0;
nss[19]= pow(M_PI, 10.0) / 181440.0;
nss[20]= 2048.0 * pow(M_PI, 10.0) / 654729075.0;
nss[21]= pow(M_PI, 11.0) / 1814400.0;
nss[22]= 4096.0 * pow(M_PI, 11.0) / 13749310575.0;
nss[23]= pow(M_PI, 12.0) / 19958400.0;
nss[24]= 8192.0 * pow(M_PI, 12.0) / 316234143225.0;
nss[25]= pow(M_PI, 13.0) / 239500800.0;
nss[26]=16384.0 * pow(M_PI, 13.0) / 7905853580625.0;