📄 lsltest.cpp
字号:
// lsltest.cpp Test the LSLFilter class
// input data is from named file or STDIN
// output is to a named file or STDOUT
static const char rcsid[]= "@(#)lsltest.c++ 1.1 15:59:34 3/31/94 EFC";
#define PROGRAM "lsltest"
#define REV_LEV "V1.1"
#include <stdlib.h>
#include <standio.hpp>
#include <getargs.h>
#include "lslfilter.hpp"
// #define DEBUG
#ifdef DEBUG
#include <heartbeat.hpp>
#endif
int menu = 0;
int verbose = 0;
double lambda = 0.98;
int order = 4;
ARG Argtab[] =
{
{ 'l', REAL, (int *)&lambda, "lambda coefficient" },
{ 'o', INTEGER, &order, "filter order" },
{ 'v', BOOLEAN, &verbose, "verbose execution" },
{ '-', BOOLEAN, &menu, "display this list" }
};
#define TABSIZE ( sizeof(Argtab) / sizeof(ARG) )
int main(int argc, char **argv)
{
float x, y;
argc = getargs( argc, argv, Argtab, TABSIZE);
if (menu)
{
menu = 0;
cerr << PROGRAM << '\t' << REV_LEV << '\n';
pr_usage( Argtab, TABSIZE);
exit(1);
}
LSLFilter filter(order, lambda);
if ( !filter )
{
cerr << PROGRAM << " error, unable to create filter\n";
exit(1);
}
if ( verbose )
{
cerr << PROGRAM << " filter order: " << filter.order() << endl;
}
Stdin fin(&argc, argv);
if ( !fin )
{
cerr << PROGRAM << " unable to open input file " << argv[1] <<endl;
exit(1);
}
Stdout fout(&argc, argv);
if ( !fout )
{
cerr << PROGRAM << " unable to open output file " << argv[1] << endl;
exit(1);
}
#ifdef DEBUG
HeartBeat h;
int k = 0;
cerr << "Starting filter\n";
#endif
while ( fin )
{
fin >> x;
if ( fin.eof() || fin.fail() )
break;
#ifdef DEBUG
k++;
h.tick();
#endif
x >> filter >> y;
fout << y << '\n';
}
#ifdef DEBUG
cerr << '\n' << k << " points filtered\n";
#endif
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -