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

example5.cpp

Go to the documentation of this file.
00001 /* $Id: example5.cpp,v 1.2 2006/06/30 01:07:26 tgkolda Exp $ */
00002 /* $Source: /space/CVS-Acro/acro/packages/appspack/appspack/examples/example5.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 
00067 #include <iostream>
00068 #include <fstream>
00069 #include <vector>
00070 
00071 using std::vector;
00072 using std::ifstream;
00073 using std::ofstream;
00074 using std::cout;
00075 using std::endl;
00076 
00078 double feval(const vector<double>& x)
00079 {
00080   double f1 = (x[0] - 10)*(x[0] - 10) + (x[1] - 10)*(x[1] - 10) +(x[2] - 10)*(x[2] - 10)
00081     +(x[3] - 10)*(x[3] - 10);
00082 
00083   return(f1);
00084 
00085 } // end feval 
00086 
00088 int main(int argc, char* argv[]) 
00089 {
00090 
00091   int i;                        // counter 
00092   vector<double> x;             // x-vector 
00093   double y;                     // solution of f(x) 
00094   ifstream fin;                 // input file
00095   ofstream fout;                // output file
00096 
00097   // Check input arguments 
00098 
00099   if (argc < 2) 
00100   {
00101     cout << "usage: " << argv[0] << " <input file> <output file>" << endl;
00102     return -1;
00103   }
00104 
00105   // Open input file 
00106 
00107   fin.open(argv[1]);
00108   if (!fin)
00109   {
00110     cout << argv[0] << " - Error opening input file " << argv[1] << endl;
00111     return -1;
00112   }
00113 
00114   // Read size of x 
00115 
00116   int n;
00117   fin >> n;
00118 
00119   // Allocate memory for x 
00120 
00121   x.resize(n);
00122 
00123   // Read x 
00124 
00125   for (i = 0; i < n; i ++)
00126     fin >> x[i];
00127   
00128   // Close input file 
00129 
00130   fin.close();
00131 
00132   // Open output file 
00133 
00134   fout.open(argv[2]);
00135   if (!fout)
00136   {
00137     cout << argv[0] << " - Error opening output file " << argv[2] << endl;
00138     return -1;
00139   }
00140 
00141   // Evaluate function at x 
00142 
00143   y = feval(x);
00144 
00145   // Write function value to output file 
00146 
00147   fout << y;
00148 
00149   // Close output file 
00150 
00151   fout.close();
00152 
00153   // Exit 
00154 
00155   return 0;
00156 }
00157 

 

© 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