#include <jem/base/System.h>
#include <jem/io/PrintWriter.h>
#include <jem/io/FileWriter.h>
#include <jem/io/FileInputStream.h>
#include <jem/io/FileOutputStream.h>
#include <jem/io/ObjectInputStream.h>
#include <jem/io/ObjectOutputStream.h>
#include <jem/util/Timer.h>
#include <jive/util/StdPointSet.h>
#include <jive/util/StdDatabase.h>
using jive::IdxVector;
int run ( int argc, char** argv )
{
const idx_t R = 4;
const idx_t N = 100;
Database::IntColumn* icol;
Database::FloatColumn* fcol;
Timer timer;
timer.start ();
points = newInstance<StdPointSet> ( "points", "point" );
dbase = newInstance<StdDatabase> ( "dbase", points );
print ( out,
"Building point set ... ", flush );
timer.reset ();
points->reserve ( N );
for ( idx_t i = 0; i < N; i++ )
{
vec = (double) i * 0.2;
points->addPoint ( vec );
}
print ( out,
"ready in ", timer, endl );
timer.reset ();
print ( out,
"Building database ... ", flush );
icol = dbase->addIntColumn ( "integer data" );
for ( idx_t i = 0; i < N; i += 2 )
{
ivec = i;
icol->setValue ( i + 0, -i );
icol->setValues ( i + 1, ivec, ivec.size() );
}
fcol = dbase->addFloatColumn ( "floating data" );
for ( idx_t i = 0; i < N; i += 2 )
{
vec = (double) i * 0.4;
fcol->setValue ( i + 0, -i );
fcol->setValues ( i + 1, vec, vec.size() );
}
print ( out,
"ready in ", timer, endl );
printer = newInstance<PrintWriter> (
newInstance<FileWriter> ( "dbase.out" ),
128 * 1024
);
dbase->printTo ( * printer );
timer.reset ();
print ( out,
"Deleting some rows ... ", flush );
for ( idx_t i = 0; i < N; i += N / 10 )
{
fcol->clearRow ( i );
icol->clearRow ( i );
}
print ( out,
"ready in ", timer, endl );
dbase->printTo ( * printer );
ivec.resize ( N / 10 );
for ( idx_t i = 0; i < ivec.size(); i++ )
{
ivec[i] = 3 * i;
}
timer.reset ();
print ( out,
"Deleting some points ... ", flush );
points->erasePoints ( ivec );
print ( out,
"ready in ", timer, endl );
dbase->printTo ( * printer );
timer.reset ();
print ( out,
"Cloning database ... " );
dbase2 = checkedCast<Database> ( dbase->clone() );
print ( out,
"ready in ", timer, endl );
return 0;
}
int main ( int argc, char** argv )
{
}