git-svn-id: svn://db.shs.com.ru/pip@330 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -98,7 +98,8 @@
|
|||||||
* * y0(x) - Bessel function second kind order 0
|
* * y0(x) - Bessel function second kind order 0
|
||||||
* * y1(x) - Bessel function second kind order 1
|
* * y1(x) - Bessel function second kind order 1
|
||||||
* * yn(x, n) - Bessel function second kind order n
|
* * yn(x, n) - Bessel function second kind order n
|
||||||
* * random(s, f) - regular random number in range [s, f]
|
* * random(s, a) - regular random with shift s and amp a
|
||||||
|
* * randomn(s, a) - normalize random with shift s and amp a
|
||||||
* * min(x0, x1, ...) - minimum of x0, x1, ...
|
* * min(x0, x1, ...) - minimum of x0, x1, ...
|
||||||
* * max(x0, x1, ...) - maximum of x0, x1, ...
|
* * max(x0, x1, ...) - maximum of x0, x1, ...
|
||||||
* * clamp(x, a, b) - trim x on range [a, b]
|
* * clamp(x, a, b) - trim x on range [a, b]
|
||||||
@@ -123,6 +124,7 @@ PIEvaluatorContent::PIEvaluatorContent() {
|
|||||||
addFunction("arctg", 1);
|
addFunction("arctg", 1);
|
||||||
addFunction("arcctg", 1);
|
addFunction("arcctg", 1);
|
||||||
addFunction("random", 2);
|
addFunction("random", 2);
|
||||||
|
addFunction("randomn", 2);
|
||||||
addFunction("sin", 1);
|
addFunction("sin", 1);
|
||||||
addFunction("cos", 1);
|
addFunction("cos", 1);
|
||||||
addFunction("ctg", 1);
|
addFunction("ctg", 1);
|
||||||
@@ -216,6 +218,7 @@ PIEvaluatorTypes::BaseFunctions PIEvaluatorContent::getBaseFunction(const PIStri
|
|||||||
if (name == "arcctg") return PIEvaluatorTypes::bfArcctg;
|
if (name == "arcctg") return PIEvaluatorTypes::bfArcctg;
|
||||||
if (name == "exp") return PIEvaluatorTypes::bfExp;
|
if (name == "exp") return PIEvaluatorTypes::bfExp;
|
||||||
if (name == "random") return PIEvaluatorTypes::bfRandom;
|
if (name == "random") return PIEvaluatorTypes::bfRandom;
|
||||||
|
if (name == "randomn") return PIEvaluatorTypes::bfRandomn;
|
||||||
if (name == "sh") return PIEvaluatorTypes::bfSh;
|
if (name == "sh") return PIEvaluatorTypes::bfSh;
|
||||||
if (name == "ch") return PIEvaluatorTypes::bfCh;
|
if (name == "ch") return PIEvaluatorTypes::bfCh;
|
||||||
if (name == "th") return PIEvaluatorTypes::bfTh;
|
if (name == "th") return PIEvaluatorTypes::bfTh;
|
||||||
@@ -1160,10 +1163,11 @@ inline void PIEvaluator::execFunction(const PIEvaluatorTypes::Instruction & ci)
|
|||||||
tmpvars[oi].value = value(ci.operators[0]).real() > 0. ? complexd_1 : complexd_0;
|
tmpvars[oi].value = value(ci.operators[0]).real() > 0. ? complexd_1 : complexd_0;
|
||||||
break;
|
break;
|
||||||
case PIEvaluatorTypes::bfRandom:
|
case PIEvaluatorTypes::bfRandom:
|
||||||
tmp = static_cast<ldouble>(rand()) / RAND_MAX;
|
tmpvars[oi].value = value(ci.operators[0]) + randomd() * value(ci.operators[1]);
|
||||||
stmp = value(ci.operators[1]) - value(ci.operators[0]);
|
|
||||||
tmpvars[oi].value = value(ci.operators[0]) + tmp * stmp;
|
|
||||||
break;
|
break;
|
||||||
|
case PIEvaluatorTypes::bfRandomn:
|
||||||
|
tmpvars[oi].value = randomn(value(ci.operators[0]).real(), value(ci.operators[1]).real());
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ namespace PIEvaluatorTypes {
|
|||||||
};
|
};
|
||||||
enum BaseFunctions {bfUnknown, bfSin, bfCos, bfTg, bfCtg,
|
enum BaseFunctions {bfUnknown, bfSin, bfCos, bfTg, bfCtg,
|
||||||
bfArcsin, bfArccos, bfArctg, bfArcctg,
|
bfArcsin, bfArccos, bfArctg, bfArcctg,
|
||||||
bfExp, bfRandom, bfSh, bfCh, bfTh, bfCth,
|
bfExp, bfRandom, bfRandomn,
|
||||||
|
bfSh, bfCh, bfTh, bfCth,
|
||||||
bfSqrt, bfSqr, bfPow, bfAbs,
|
bfSqrt, bfSqr, bfPow, bfAbs,
|
||||||
bfLn, bfLg, bfLog, bfSign,
|
bfLn, bfLg, bfLog, bfSign,
|
||||||
bfIm, bfRe, bfArg, bfLen, bfConj,
|
bfIm, bfRe, bfArg, bfLen, bfConj,
|
||||||
|
|||||||
Reference in New Issue
Block a user