68 std::vector<LOMB_TYPE> lodata, lodata2;
76 for(
int j = 0; j < Ndat; j++) {
79 lodata.push_back(tlom);
85 datcnt = (int) count_if(p, q,
Lomb_eq(0.));
87 if(datcnt > (q - p - 10)) {
88 *gmsg <<
"* Just found " << datcnt <<
" data points that are == 0!" <<
endl;
98 std::unique_ptr<LOMB_class> la(
new LOMB_class(1));
101 stat = la->period(&lodata, &lodata2,
ofac,
hifac, &nout, &jmax, &prob, 0);
103 *gmsg <<
"* @C3ERROR: Lomb analysis failed!" <<
endl;
111 for(i = 0; i < nout; i++) {
112 if(lodata2[i].y > 2.) {
113 pairx[pairc] = lodata2[i].x;
114 pairy[pairc] = lodata2[i].y;
115 if((pairy[pairc] > pairy[pairc-1]) &&
116 (pairy[pairc] > lodata2[i+1].y)) {
117 probi = la->signi(&pairy[pairc], &nout, &tofac);
118 if(pairy[pairc] > 4.) {
120 << std::setw(12) << std::setprecision(8) << pairx[pairc]*Norm <<
" "
121 << std::setw(8) << std::setprecision(2) << pairy[pairc] <<
" "
122 << std::setw(8) << std::setprecision(3) << probi <<
" "
130 *gmsg <<
"* ===> Max: "
132 << std::setw(12) << std::setprecision(8) << lodata2[jmax].x * Norm <<
" "
133 << std::setw(8) << std::setprecision(2) << lodata2[jmax].y <<
" "
158 std::vector<LOMB_TYPE> lodata, lodata2;
161 *gmsg <<
"* TUNE_class LombAnalysis requested" <<
endl;
168 for(
int j = 0; j < Ndat; j++) {
171 lodata.push_back(tlom);
177 datcnt = count_if(p, q,
Lomb_eq(0.));
179 if(datcnt > (q - p - 10)) {
180 *gmsg <<
"* Just found " << datcnt <<
"data points that are == 0!" <<
endl;
190 std::unique_ptr<LOMB_class> la(
new LOMB_class(1));
193 stat = la->period(&lodata, &lodata2,
ofac,
hifac, &nout, &jmax, &prob, 0);
195 *gmsg <<
"* @C3ERROR: Lomb analysis failed!" <<
endl;
199 *gmsg <<
"* =====> jmax = " << jmax <<
endl;
204 *gmsg <<
"* ********** Peaks in Data: **************" <<
endl;
214 for(i = 0; i < nout; i++) {
218 if(lodata2[i].y > 2.) {
219 pairx[pairc] = lodata2[i].x;
220 pairy[pairc] = lodata2[i].y;
221 if((pairy[pairc] > pairy[pairc-1]) &&
222 (pairy[pairc] > lodata2[i+1].y)) {
223 probi = la->signi(&pairy[pairc], &nout, &tofac);
224 if(pairy[pairc] > 4.) {
226 << std::setw(12) << std::setprecision(8) << pairx[pairc] <<
" "
227 << std::setw(8) << std::setprecision(2) << pairy[pairc] <<
" "
228 << std::setw(8) << std::setprecision(3) << probi <<
" "
236 *gmsg <<
"* ===> Max: "
238 << std::setw(12) << std::setprecision(8) << lodata2[jmax].x <<
" "
239 << std::setw(8) << std::setprecision(2) << lodata2[jmax].y <<
" "
int lombAnalysis(double *x, double *y, int Ndat, int nhis)
std::vector< LOMB_TYPE >::const_iterator CI_lt
virtual ~TUNE_class(void)
Inform & endl(Inform &inf)