本文整理汇总了C++中VectorPtr::numNew方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorPtr::numNew方法的具体用法?C++ VectorPtr::numNew怎么用?C++ VectorPtr::numNew使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorPtr
的用法示例。
在下文中一共展示了VectorPtr::numNew方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: internalUpdate
void PSD::internalUpdate() {
writeLockInputsAndOutputs();
VectorPtr iv = _inputVectors[INVECTOR];
const int v_len = iv->length();
_last_n_new += iv->numNew();
assert(_last_n_new >= 0);
int n_subsets = (v_len)/_PSDLength;
// determine if the PSD needs to be updated.
// if not using averaging, then we need at least _PSDLength/16 new data points.
// if averaging, then we want enough new data for a complete subset.
// ... unless we are counting from end at fixed length (scrolling data).
bool scrolling_data = (_last_n == iv->length());
if ( (!_changed) && ((_last_n_new < _PSDLength/16) ||
(_Average && scrolling_data && (_last_n_new < _PSDLength/16)) ||
(_Average && !scrolling_data && (n_subsets - _last_n_subsets < 1))) &&
iv->length() != iv->numNew()) {
unlockInputsAndOutputs();
return;
}
_changed = false;
_adjustLengths();
double *psd = _sVector->value();
double *f = _fVector->value();
int i_samp;
for (i_samp = 0; i_samp < _PSDLength; ++i_samp) {
f[i_samp] = i_samp * 0.5 * _Frequency / (_PSDLength - 1);
}
//f[0] = -1E-280; // really 0 (this shouldn't be needed...)
_psdCalculator.calculatePowerSpectrum(iv->value(), v_len, psd, _PSDLength, _RemoveMean, _interpolateHoles, _Average, _averageLength, _Apodize, _apodizeFxn, _gaussianSigma, _Output, _Frequency);
_last_n_subsets = n_subsets;
_last_n_new = 0;
_last_n = iv->length();
updateVectorLabels();
// should be updated by the update manager
//_sVector->update();
//_fVector->update();
unlockInputsAndOutputs();
return;
}