本文整理汇总了C++中Constant::calcValue方法的典型用法代码示例。如果您正苦于以下问题:C++ Constant::calcValue方法的具体用法?C++ Constant::calcValue怎么用?C++ Constant::calcValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Constant
的用法示例。
在下文中一共展示了Constant::calcValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: init
/**
* Initialize the spline with X and Y values.
*
* @param aN the number of X and Y values
* @param aXValues the X values
* @param aYValues the Y values
*/
void SimmSpline::init(Function* aFunction)
{
if (aFunction == NULL)
return;
SimmSpline* ncs = dynamic_cast<SimmSpline*>(aFunction);
if (ncs != NULL) {
setEqual(*ncs);
} else {
XYFunctionInterface xyFunc(aFunction);
if (xyFunc.getNumberOfPoints() == 0) {
// A SimmSpline must have at least 2 data points.
// If aFunction is a Constant, use its Y value for both data points.
// If it is not, make up two data points.
double x[2] = {0.0, 1.0}, y[2];
Constant* cons = dynamic_cast<Constant*>(aFunction);
if (cons != NULL) {
y[0] = y[1] = cons->calcValue(SimTK::Vector(0));
} else {
y[0] = y[1] = 1.0;
}
*this = SimmSpline(2, x, y);
} else if (xyFunc.getNumberOfPoints() == 1) {
double x[2], y[2];
x[0] = xyFunc.getXValues()[0];
x[1] = x[0] + 1.0;
y[0] = y[1] = xyFunc.getYValues()[0];
*this = SimmSpline(2, x, y);
} else {
*this = SimmSpline(xyFunc.getNumberOfPoints(),
xyFunc.getXValues(), xyFunc.getYValues());
}
}
}
示例2: init
/**
* Initialize the function with X and Y values.
*
* @param aN the number of X and Y values
* @param aXValues the X values
* @param aYValues the Y values
*/
void PiecewiseConstantFunction::init(Function* aFunction)
{
if (aFunction == NULL)
return;
PiecewiseConstantFunction* sf = dynamic_cast<PiecewiseConstantFunction*>(aFunction);
if (sf != NULL) {
setEqual(*sf);
} else {
XYFunctionInterface xyFunc(aFunction);
if (xyFunc.getNumberOfPoints() == 0) {
// A PiecewiseConstantFunction must have at least 2 data points.
// If aFunction is a Constant, use its Y value for both data points.
// If it is not, make up two data points.
double x[2] = {0.0, 1.0}, y[2];
Constant* cons = dynamic_cast<Constant*>(aFunction);
if (cons != NULL) {
y[0] = y[1] = cons->calcValue(SimTK::Vector(1, 0.));
} else {
y[0] = y[1] = 1.0;
}
*this = PiecewiseConstantFunction(2, x, y);
} else if (xyFunc.getNumberOfPoints() == 1) {
double x[2], y[2];
x[0] = xyFunc.getXValues()[0];
x[1] = x[0] + 1.0;
y[0] = y[1] = xyFunc.getYValues()[0];
*this = PiecewiseConstantFunction(2, x, y);
} else {
*this = PiecewiseConstantFunction(xyFunc.getNumberOfPoints(),
xyFunc.getXValues(), xyFunc.getYValues());
}
}
}