ESYS13  Revision_
Functions.h
Go to the documentation of this file.
00001 
00002 /*******************************************************
00003 *
00004 * Copyright (c) 2003-2012 by University of Queensland
00005 * Earth Systems Science Computational Center (ESSCC)
00006 * http://www.uq.edu.au/esscc
00007 *
00008 * Primary Business: Queensland, Australia
00009 * Licensed under the Open Software License version 3.0
00010 * http://www.opensource.org/licenses/osl-3.0.php
00011 *
00012 *******************************************************/
00013 
00014 
00015 #ifndef INC_PASO_FUNCTIONS
00016 #define INC_PASO_FUNCTIONS
00017 
00018 
00019 #include "Common.h"
00020 #include "esysUtils/Esys_MPI.h"
00021 #include "performance.h"
00022 
00023 enum Paso_FunctionType {
00024   LINEAR_SYSTEM
00025 };
00026 
00027 typedef enum Paso_FunctionType Paso_FunctionType;
00028 
00029 typedef struct Paso_Function {
00030   Paso_FunctionType kind;
00031   dim_t n;
00032   Esys_MPIInfo *mpi_info;
00033   double *b;
00034   double *tmp;
00035   void *more;
00036 } Paso_Function;
00037 
00038 err_t Paso_FunctionDerivative(double* J0w, const double* w, Paso_Function* F, const double *f0, const double *x0, double* setoff, Paso_Performance *pp);
00039 err_t Paso_FunctionCall(Paso_Function * F,double* value, const double* arg, Paso_Performance *pp);
00040 void Paso_Function_free(Paso_Function * F);
00041 
00042 #endif