17.10.2013 - Adjusted for QNX, PIPeer release for Windows, Remote console

This commit is contained in:
peri4
2013-10-17 16:12:10 +04:00
parent 4b90f2818e
commit 0f1b528ac6
42 changed files with 585 additions and 171 deletions

View File

@@ -20,8 +20,8 @@
#include "pimath.h"
double piJ0(const double & v) {
#ifndef PIP_MATH_J0
double j0(const double & v) {
double x = v;
double xsq;
double nn;
@@ -92,12 +92,14 @@ double j0(const double & v) {
q1 = 5428918384092285160.200195092 + xsq * q1;
q1 = 493378725179413356211.3278438 + xsq * q1;
return p1 / q1;
}
#else
return j0(v);
#endif
}
double piJ1(const double & v) {
#ifndef PIP_MATH_J1
double j1(const double & v) {
double x = v;
double s;
double xsq;
@@ -172,12 +174,14 @@ double j1(const double & v) {
q1 = 1162398708003212287858.529400 + xsq * q1;
result = s * x * p1 / q1;
return result;
}
#else
return j1(v);
#endif
}
double piJn(int n, const double & v) {
#ifndef PIP_MATH_JN
double jn(const int & n, const double & v) {
double x = v;
double pkm2;
double pkm1;
@@ -202,18 +206,18 @@ double jn(const int & n, const double & v) {
x = -x;
}
if (n == 0) {
result = sg * j0(x);
result = sg * piJ0(x);
return result;
}
if (n == 1) {
result = sg * j1(x);
result = sg * piJ1(x);
return result;
}
if (n == 2) {
if (x == 0)
result = 0;
else
result = sg * (2.0 * j1(x) / x - j0(x));
result = sg * (2.0 * piJ1(x) / x - piJ0(x));
return result;
}
if (x < 1E-16) {
@@ -242,17 +246,19 @@ double jn(const int & n, const double & v) {
k = k - 1;
} while (k != 0);
if (fabs(pk) > fabs(pkm1))
ans = j1(x) / pk;
ans = piJ1(x) / pk;
else
ans = j0(x) / pkm1;
ans = piJ0(x) / pkm1;
result = sg * ans;
return result;
}
#else
return jn(n, v);
#endif
}
double piY0(const double & v) {
#ifndef PIP_MATH_Y0
double y0(const double & v) {
double x = v;
double nn;
double xsq;
@@ -321,14 +327,16 @@ double y0(const double & v) {
q4 = 23928830434997818.57439356652 + xsq * q4;
q4 = 4192417043410839973.904769661 + xsq * q4;
q4 = 372645883898616588198.9980 + xsq * q4;
result = p4 / q4 + 2 / M_PI * j0(x) * log(x);
result = p4 / q4 + 2 / M_PI * piJ0(x) * log(x);
return result;
}
#else
return y0(v);
#endif
}
double piY1(const double & v) {
#ifndef PIP_MATH_Y1
double y1(const double & v) {
double x = v;
double nn;
double xsq;
@@ -396,14 +404,16 @@ double y1(const double & v) {
q4 = 29549879358971486742.90758119 + xsq * q4;
q4 = 5435310377188854170800.653097 + xsq * q4;
q4 = 508206736694124324531442.4152 + xsq * q4;
result = x * p4 / q4 + 2 / M_PI * (j1(x) * log(x) - 1 / x);
result = x * p4 / q4 + 2 / M_PI * (piJ1(x) * log(x) - 1 / x);
return result;
}
#else
return y1(v);
#endif
}
double piYn(int n, const double & v) {
#ifndef PIP_MATH_YN
double yn(const int & n, const double & v) {
int i;
double x = v;
double a;
@@ -418,15 +428,15 @@ double yn(const int & n, const double & v) {
s = -1;
}
if (n == 0) {
result = y0(x);
result = piY0(x);
return result;
}
if (n == 1) {
result = s * y1(x);
result = s * piY1(x);
return result;
}
a = y0(x);
b = y1(x);
a = piY0(x);
b = piY1(x);
for (i = 1; i <= n - 1; i++) {
tmp = b;
b = 2 * i / x * b - a;
@@ -434,8 +444,10 @@ double yn(const int & n, const double & v) {
}
result = s * b;
return result;
}
#else
return yn(n, v);
#endif
}
double randomn(double dv, double sv) {