1 //What are the mem_ things?
2 //Norm2 command
3
4 //JWG
5
6 //------------------------------------------------------------------------
7 // Copyright (C) 1993:
8 // J.C. Meza
9 // Sandia National Laboratories
10 // meza@california.sandia.gov
11 //------------------------------------------------------------------------
12
13 #include "NLP2.h"
14 #include "TOLS.h"
15 #include "cblas.h"
16 #include "ioformat.h"
17 #include "Teuchos_SerialDenseMatrix.hpp"
18 #include "Teuchos_SerialDenseVector.hpp"
19 #include "Teuchos_SerialSymDenseMatrix.hpp"
20
21 using namespace std;
22
23 namespace OPTPP {
24
25 //-------------------------------------------------------------------------
26 // Output Routines
27 //-------------------------------------------------------------------------
28
printState(const char * s)29 void NLP2::printState(const char * s)
30 { // Print out current state: x current, gradient and Function value
31 cout << "\n\n========= " << s << " ===========\n\n";
32 cout << "\n i\t xc \t\t grad \t\t fcn_accrcy \n";
33 for (int i=0; i<dim; i++)
34 cout << d(i,6) << e(mem_xc(i),12,4)<< "\t" << e(mem_grad(i),12,4)
35 << "\t" << e(mem_fcn_accrcy(i),12,4) << "\n";
36 cout <<"Function Value = " << e(fvalue,12,4) << "\n";
37 //double gnorm = Norm2(mem_grad);
38 double gnorm = sqrt(mem_grad.dot(mem_grad));
39 cout <<"Norm of gradient = " << e(gnorm,12,4) << "\n";
40 cout <<"\n\n==============================================\n\n";
41 }
42
fPrintState(ostream * nlpout,const char * s)43 void NLP2::fPrintState(ostream *nlpout, const char * s)
44 { // Print out current state: x current, gradient and Function value
45 (*nlpout) << "\n\n========= " << s << " ===========\n\n";
46 (*nlpout) << "\n i\t xc \t\t grad \t\t fcn_accrcy \n";
47 for (int i=0; i<dim; i++)
48 (*nlpout)<< d(i,6) << e(mem_xc(i),12,4) << "\t" << e(mem_grad(i),12,4)
49 << "\t" << e(mem_fcn_accrcy(i),12,4) << "\n";
50 (*nlpout) <<"Function Value = " << e(fvalue,12,4) << "\n";
51 // double gnorm = Norm2(mem_grad);
52 double gnorm = sqrt(mem_grad.dot(mem_grad));
53 (*nlpout) <<"Norm of gradient = " << e(gnorm,12,4) << "\n";
54 // (*nlpout) <<"Function Accuracy = " << e(mem_fcn_accrcy,12,4) << "\n";
55 (*nlpout) <<"\n\n==============================================\n\n";
56 }
57
58 } // namespace OPTPP
59