Sandia Home Sandia Home
Main Page | Publications | Downloads | Configuration | Running the Code | Solver Parameters | FAQ | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

example4.cpp

Go to the documentation of this file.
00001 /* $Id: example4.cpp,v 1.2 2006/06/30 01:07:26 tgkolda Exp $ */
00002 /* $Source: /space/CVS-Acro/acro/packages/appspack/appspack/examples/example4.cpp,v $ */
00003 
00004 /* @HEADER */
00005 // ************************************************************************
00006 // 
00007 //          APPSPACK: Asynchronous Parallel Pattern Search
00008 //                 Copyright (2003) Sandia Corporation
00009 // 
00010 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00011 // license for use of this work by or on behalf of the U.S. Government.
00012 // 
00013 // This library is free software; you can redistribute it and/or modify
00014 // it under the terms of the GNU Lesser General Public License as
00015 // published by the Free Software Foundation; either version 2.1 of the
00016 // License, or (at your option) any later version.
00017 //  
00018 // This library is distributed in the hope that it will be useful, but
00019 // WITHOUT ANY WARRANTY; without even the implied warranty of
00020 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021 // Lesser General Public License for more details.
00022 //                                                                                 
00023 // You should have received a copy of the GNU Lesser General Public
00024 // License along with this library; if not, write to the Free Software
00025 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00026 // USA.                                                                           .
00027 // 
00028 // Questions? Contact Tammy Kolda (tgkolda@sandia.gov) 
00029 // 
00030 // ************************************************************************
00031 /* @HEADER */
00032 
00062 #include <iostream>
00063 #include <fstream>
00064 #include <vector>
00065 
00066 using std::vector;
00067 using std::ifstream;
00068 using std::ofstream;
00069 using std::cout;
00070 using std::endl;
00071 
00073 double feval(const vector<double>& x)
00074 {
00075   double f1 = (x[0] - 10)*(x[0] - 10) + (x[1] - 10)*(x[1] - 10) +(x[2] - 10)*(x[2] - 10)
00076     +(x[3] - 10)*(x[3] - 10);
00077 
00078   return(f1);
00079 
00080 } // end feval 
00081 
00083 int main(int argc, char* argv[]) 
00084 {
00085 
00086   int i;                        // counter 
00087   vector<double> x;             // x-vector 
00088   double y;                     // solution of f(x) 
00089   ifstream fin;                 // input file
00090   ofstream fout;                // output file
00091 
00092   // Check input arguments 
00093 
00094   if (argc < 2) 
00095   {
00096     cout << "usage: " << argv[0] << " <input file> <output file>" << endl;
00097     return -1;
00098   }
00099 
00100   // Open input file 
00101 
00102   fin.open(argv[1]);
00103   if (!fin)
00104   {
00105     cout << argv[0] << " - Error opening input file " << argv[1] << endl;
00106     return -1;
00107   }
00108 
00109   // Read size of x 
00110 
00111   int n;
00112   fin >> n;
00113 
00114   // Allocate memory for x 
00115 
00116   x.resize(n);
00117 
00118   // Read x 
00119 
00120   for (i = 0; i < n; i ++)
00121     fin >> x[i];
00122   
00123   // Close input file 
00124 
00125   fin.close();
00126 
00127   // Open output file 
00128 
00129   fout.open(argv[2]);
00130   if (!fout)
00131   {
00132     cout << argv[0] << " - Error opening output file " << argv[2] << endl;
00133     return -1;
00134   }
00135 
00136   // Evaluate function at x 
00137 
00138   y = feval(x);
00139 
00140   // Write function value to output file 
00141 
00142   fout << y;
00143 
00144   // Close output file 
00145 
00146   fout.close();
00147 
00148   // Exit 
00149 
00150   return 0;
00151 }
00152 

 

© Sandia Corporation | Site Contact | Privacy and Security

Generated on Fri Feb 16 10:33:35 2007 for APPSPACK 5.0.1 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2002