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
|
||||
* * y1(x) - Bessel function second kind order 1
|
||||
* * 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, ...
|
||||
* * max(x0, x1, ...) - maximum of x0, x1, ...
|
||||
* * clamp(x, a, b) - trim x on range [a, b]
|
||||
@@ -123,6 +124,7 @@ PIEvaluatorContent::PIEvaluatorContent() {
|
||||
addFunction("arctg", 1);
|
||||
addFunction("arcctg", 1);
|
||||
addFunction("random", 2);
|
||||
addFunction("randomn", 2);
|
||||
addFunction("sin", 1);
|
||||
addFunction("cos", 1);
|
||||
addFunction("ctg", 1);
|
||||
@@ -216,6 +218,7 @@ PIEvaluatorTypes::BaseFunctions PIEvaluatorContent::getBaseFunction(const PIStri
|
||||
if (name == "arcctg") return PIEvaluatorTypes::bfArcctg;
|
||||
if (name == "exp") return PIEvaluatorTypes::bfExp;
|
||||
if (name == "random") return PIEvaluatorTypes::bfRandom;
|
||||
if (name == "randomn") return PIEvaluatorTypes::bfRandomn;
|
||||
if (name == "sh") return PIEvaluatorTypes::bfSh;
|
||||
if (name == "ch") return PIEvaluatorTypes::bfCh;
|
||||
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;
|
||||
break;
|
||||
case PIEvaluatorTypes::bfRandom:
|
||||
tmp = static_cast<ldouble>(rand()) / RAND_MAX;
|
||||
stmp = value(ci.operators[1]) - value(ci.operators[0]);
|
||||
tmpvars[oi].value = value(ci.operators[0]) + tmp * stmp;
|
||||
tmpvars[oi].value = value(ci.operators[0]) + randomd() * value(ci.operators[1]);
|
||||
break;
|
||||
case PIEvaluatorTypes::bfRandomn:
|
||||
tmpvars[oi].value = randomn(value(ci.operators[0]).real(), value(ci.operators[1]).real());
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,8 @@ namespace PIEvaluatorTypes {
|
||||
};
|
||||
enum BaseFunctions {bfUnknown, bfSin, bfCos, bfTg, bfCtg,
|
||||
bfArcsin, bfArccos, bfArctg, bfArcctg,
|
||||
bfExp, bfRandom, bfSh, bfCh, bfTh, bfCth,
|
||||
bfExp, bfRandom, bfRandomn,
|
||||
bfSh, bfCh, bfTh, bfCth,
|
||||
bfSqrt, bfSqr, bfPow, bfAbs,
|
||||
bfLn, bfLg, bfLog, bfSign,
|
||||
bfIm, bfRe, bfArg, bfLen, bfConj,
|
||||
|
||||
Reference in New Issue
Block a user