// Test program 1 (to see if I enter "hi there" that Tstrings[0] is "hi"): #include #include int main() { using namespace std; string Tstrings[3]; cout << "Hello World, this is CodeWarrior!" << endl; cin >> Tstrings[0]; cout << Tstrings[0]; return 0; } // Test program 2 (adds (new C++_) "vector" of strings, // and one way to read to end of line): #include #include #include int main() { using namespace std; vector< string > VarNames; int nVars, v; string VarNameIn; char next; cout << "Hello World, this is CodeWarrior!" << endl; nVars = 1; cin >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name do { nVars++; cin >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name cin.get(next); } while (next != '\n'); for (v = 0; v < nVars; v++) { cout << VarNames[v] << endl; } cout << nVars << endl; return 0; } // Test program 3 (adds fstream and file open and read 1 line): #include #include #include #include int main() { using namespace std; char InputFileName[255]; vector< string > VarNames; int nVars, v; string VarNameIn; char next; cout << "Enter Data File Name: "; cin.getline(InputFileName, 255); ifstream InputFile(InputFileName, ios::in); nVars = 1; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name do { nVars++; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name InputFile.get(next); } while (next != '\n'); for (v = 0; v < nVars; v++) { cout << VarNames[v] << endl; } cout << nVars << endl; return 0; } // Test program 4 (adds actual data line input as RowVectors): #define WANT_STREAM // added for VS #include #include #include #include #include "newmat.h" // mod for quotes these two lines for VS #include "newmatio.h" // mod for quotes these two lines for VS int main() { using namespace std; char InputFileName[255]; vector< string > VarNames; int nVars, v; string VarNameIn; char next; RowVector DataLineIn; cout << "Enter Data File Name: "; cin.getline(InputFileName, 255); ifstream InputFile(InputFileName, ios::in); nVars = 1; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name do { nVars++; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name InputFile.get(next); } while (next != '\n'); for (v = 0; v < nVars; v++) { cout << VarNames[v] << endl; } cout << nVars << endl; DataLineIn.ReSize(nVars); do { for (v = 1; v <= nVars; v++) { InputFile >> DataLineIn(v); } cout << DataLineIn; } while (!InputFile.eof()); return 0; } // Test program 5 (builds enough to compute betas): #define WANT_STREAM // added for VS #include #include #include #include #include "newmat.h" // mod for quotes these two lines for VS #include "newmatio.h" // mod for quotes these two lines for VS int main() { using namespace std; char InputFileName[255]; vector< string > VarNames; int nVars, v, N; string VarNameIn; char next; RowVector DataLineIn; Matrix Data; cout << "Enter Data File Name: "; cin.getline(InputFileName, 255); ifstream InputFile(InputFileName, ios::in); nVars = 1; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name do { nVars++; InputFile >> VarNameIn; VarNames.push_back(VarNameIn); // first variable name InputFile.get(next); } while (next != '\n'); for (v = 0; v < nVars; v++) { cout << VarNames[v] << endl; } cout << nVars << endl; DataLineIn.ReSize(nVars); N = 0; Data.ReSize(1,nVars); do { N++; for (v = 1; v <= nVars; v++) { InputFile >> DataLineIn(v); } if (N > 1) { Data.Release(); Matrix LocalData = Data; Data.ReSize(N,nVars); Data.Rows(1,(N-1))=LocalData; } Data.Row(N) = DataLineIn; } while (!InputFile.eof()); cout << Data; int degree = 2; int d, dd; int YColumn = 5; int XColumn = 1; int DColumn = 2; Matrix X(N,(degree+1)); ColumnVector Ones(N); DiagonalMatrix D(N); ColumnVector Y(N); ColumnVector beta(degree+1); Ones = 1.0; X.Column(1) = Ones; for (d = 1; d <= degree; d++) { X.Column(d+1) = Data.Column(XColumn); for (dd = 2; dd <= d; dd++) { X.Column(d+1) = SP(X.Column(d+1), Data.Column(XColumn)); } } cout << X; Y = Data.Column(YColumn); D = (Data.Column(DColumn)).AsDiagonal(); cout << Y; cout << D; beta = ((X.t()*D*X).i()) * (X.t()*D*Y); cout << beta; return 0; }