Skip to content

Commit ab0f75c

Browse files
v1.12.0 Add exclusionRadius validLib to EmbedDimension, PredictInterval, PredictNonlinear
1 parent 8424b3b commit ab0f75c

File tree

7 files changed

+267
-166
lines changed

7 files changed

+267
-166
lines changed

doc/cppEDM.pdf

608 Bytes
Binary file not shown.

etc/Test.cc

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,12 @@ int main( int argc, char *argv[] ) {
280280
10, // maxE
281281
1, // Tp
282282
-1, // tau
283+
0, // exclusionRadius
283284
"TentMap", // colNames
284285
"", // targetName
285286
false, // embedded
286287
false, // verbose
288+
std::vector<bool>(),// validLib
287289
4 ); // nThreads
288290

289291
std::cout << "EmbedDimension TentMap_rEDM.csv:\n";
@@ -303,10 +305,12 @@ int main( int argc, char *argv[] ) {
303305
10, // maxTp
304306
2, // E
305307
-1, // tau
308+
0, // exclusionRadius
306309
"TentMap", // colNames
307310
"", // targetName,
308311
false, // embedded
309312
false, // verbose
313+
std::vector<bool>(), // validLib
310314
4 ); // nThreads
311315

312316
std::cout << "PredictInterval TentMap_rEDM.csv:\n";
@@ -317,22 +321,24 @@ int main( int argc, char *argv[] ) {
317321
//----------------------------------------------------------
318322
//----------------------------------------------------------
319323
DataFrame< double > NL =
320-
PredictNonlinear( "../data/", // pathIn,
324+
PredictNonlinear( "../data/", // pathIn,
321325
"TentMapNoise_rEDM.csv", // dataFile,
322-
"./", // pathOut,
326+
"./", // pathOut,
323327
"PredictNonlinearOut.csv", // predictFile,
324-
"1 100", // lib,
325-
"201 500", // pred,
326-
"", // theta,
327-
2, // E,
328-
1, // Tp,
329-
0, // knn,
330-
-1, // tau,
331-
"TentMap", // colNames,
332-
"", // targetName,
333-
false, // embedded,
334-
false, // verbose,
335-
4 ); // nThreads
328+
"1 100", // lib,
329+
"201 500", // pred,
330+
"", // theta,
331+
2, // E,
332+
1, // Tp,
333+
0, // knn,
334+
-1, // tau,
335+
0, // exclusionRadius
336+
"TentMap", // colNames,
337+
"", // targetName,
338+
false, // embedded,
339+
false, // verbose,
340+
std::vector<bool>(), // validLib
341+
4 ); // nThreads
336342

337343
NL.MaxRowPrint() = 15;
338344
std::cout << "PredictNonlinear TentMapNoise_rEDM.csv:\n";

etc/dataFrame.cc

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
// g++ dataFrame.cc -o dataFrame -std=c++11 -g -I../src -L../lib -lstdc++ -lEDM -llapack -pthread
2+
// g++ dataFrame.cc -o dataFrame -std=c++11 -g -I../src -L../lib -lstdc++ -lEDM
33

44
#include "API.h"
55
#include "DataFrame.h"
@@ -10,19 +10,19 @@
1010
int main( int argc, char *argv[] ) {
1111

1212
std::string dataFile = "../data/block_3sp.csv";
13-
std::string columns = "x_t";
14-
std::string fileOut = "out.csv";
13+
std::string columns = "x_t y_t z_t";
14+
std::string fileOut = "";
1515
bool verbose = false; // 'y' = true
16-
16+
1717
if ( argc > 1 ) { dataFile = argv[1]; }
1818
if ( argc > 2 ) { columns = argv[2]; }
1919
if ( argc > 3 ) { fileOut = argv[3]; }
2020
if ( argc > 4 ){ verbose = ( *argv[4] == 'y' ? true : false ); }
2121

2222
if ( verbose ) {
23-
std::cout << dataFile << " cols " << columns << std::endl;
23+
std::cout << dataFile << " columns " << columns << std::endl;
2424
}
25-
25+
2626
try {
2727
//----------------------------------------------------------
2828
//----------------------------------------------------------
@@ -37,25 +37,57 @@ int main( int argc, char *argv[] ) {
3737
std::cout << DF;
3838
}
3939

40+
// Data Frame From Row Index
4041
size_t rowi[] = { 0,2,4,6,8,10 };
4142
std::vector< size_t > rows( rowi, rowi + sizeof(rowi)/sizeof(size_t) );
4243
DataFrame < double > DFrows = DF.DataFrameFromRowIndex( rows );
44+
std::cout << ">>>>>>> DataFrameFromRowIndex\n";
4345
std::cout << DFrows;
4446

45-
size_t coli[] = { 1 };
47+
// Data Frame From Column Index
48+
size_t coli[] = { 1, 4, 7 };
4649
std::vector< size_t > cols( coli, coli + sizeof(coli)/sizeof(size_t) );
4750
DataFrame < double > DFcols = DF.DataFrameFromColumnIndex( cols );
51+
std::cout << ">>>>>>> DataFrameFromColumnIndex\n";
4852
std::cout << DFcols;
4953

54+
// Data Frame From Column Names
55+
std::vector<std::string> colNames = SplitString( columns, " \t\n" );
5056
DataFrame < double > DFrowscols =
51-
DFrows.DataFrameFromColumnIndex( cols );
57+
DFrows.DataFrameFromColumnNames( colNames );
58+
std::cout << ">>>>>>> DataFrameFromColumnNames\n";
5259
std::cout << DFrowscols;
60+
61+
// Data Frame Remove Nan Rows
62+
// Set nan in DF
63+
DF( 185, 0 ) = nan("dataFrame"); // x_t
64+
DF( 188, 5 ) = nan("dataFrame"); // y_t-2
65+
DF( 189, 3 ) = nan("dataFrame"); // y_t
66+
DF( 190, 0 ) = nan("dataFrame"); // x_t
67+
DF( 193, 2 ) = nan("dataFrame"); // x_t-2
68+
DF( 195, 4 ) = nan("dataFrame"); // y_t-1
69+
70+
bool nanFound = DF.NanRows( colNames ); // set DF validRows
71+
DataFrame < double > DFnan = DF.DataFrameRemoveNanRows();
72+
std::cout << ">>>>>>> DataFrameRemoveNanRows\n";
73+
std::cout << "---------- nan rows: ";
74+
for ( auto n : DF.NanRows() ) { std::cout << n << " "; }
75+
std::cout << std::endl;
76+
std::cout << DFnan;
77+
78+
// Copy constructor
79+
DFrows( 0, 0 ) = -999.0;
80+
DataFrame< double > DFC = DFrows;
81+
DFrows( 1, 0 ) = -888.0;
82+
std::cout << ">>>>>>> DFRows copy\n";
83+
std::cout << DFC;
5384

85+
5486
if ( fileOut.size() ) {
5587
DF.WriteData( "", fileOut );
5688
}
5789
}
58-
90+
5991
catch ( const std::exception& e ) {
6092
std::cout << "Exception caught in main:\n";
6193
std::cout << e.what() << std::endl;
@@ -67,6 +99,6 @@ int main( int argc, char *argv[] ) {
6799
}
68100

69101
std::cout << "normal termination\n";
70-
102+
71103
return 0;
72104
}

etc/eval.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ int main( int argc, char *argv[] ) {
6161
10, // maxE <<<<< CONSTANT
6262
Tp, // Tp
6363
-1, // tau <<<<< CONSTANT
64+
exclusionR, // exclusionRadius
6465
columns, // colNames
6566
target, // targetName
6667
embedded, // embedded
6768
verbose, // verbose
69+
std::vector<bool>(), // validLib
6870
nThreads ); // nThreads
6971

7072
std::cout << "EmbedDimension:\n";
@@ -86,10 +88,12 @@ int main( int argc, char *argv[] ) {
8688
10, // maxTp <<<<< CONSTANT
8789
E, // E
8890
-1, // tau <<<<< CONSTANT
91+
exclusionR, // exclusionRadius
8992
columns, // colNames
9093
target, // targetName
9194
embedded, // embedded
9295
verbose, // verbose
96+
std::vector<bool>(), // validLib
9397
nThreads ); // nThreads
9498

9599
std::cout << "PredictInterval:\n";
@@ -113,10 +117,12 @@ int main( int argc, char *argv[] ) {
113117
Tp, // Tp
114118
0, // knn
115119
-1, // tau <<<<< CONSTANT
120+
exclusionR, // exclusionRadius
116121
columns, // colNames
117122
target, // targetName
118123
embedded, // embedded
119124
verbose, // verbose
125+
std::vector<bool>(), // validLib
120126
nThreads ); // nThreads
121127

122128
NL.MaxRowPrint() = 15;

0 commit comments

Comments
 (0)