|
RTOpPack: Extra C/C++ Code for Vector Reduction/Transformation Operators Version of the Day
|
00001 /* 00002 // @HEADER 00003 // *********************************************************************** 00004 // 00005 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization 00006 // Copyright (2003) Sandia Corporation 00007 // 00008 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00009 // license for use of this work by or on behalf of the U.S. Government. 00010 // 00011 // This library is free software; you can redistribute it and/or modify 00012 // it under the terms of the GNU Lesser General Public License as 00013 // published by the Free Software Foundation; either version 2.1 of the 00014 // License, or (at your option) any later version. 00015 // 00016 // This library is distributed in the hope that it will be useful, but 00017 // WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 // Lesser General Public License for more details. 00020 // 00021 // You should have received a copy of the GNU Lesser General Public 00022 // License along with this library; if not, write to the Free Software 00023 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00024 // USA 00025 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 00026 // 00027 // *********************************************************************** 00028 // @HEADER 00029 */ 00030 00031 #include <assert.h> 00032 00033 #include "RTOp_obj_null_vtbl.h" 00034 #include "RTOp_obj_free_free.h" 00035 00036 /* Local function definitions */ 00037 00038 static int get_obj_type_num_entries( 00039 const struct RTOp_obj_type_vtbl_t* vtbl 00040 ,const void* instance_data 00041 ,int* num_values 00042 ,int* num_indexes 00043 ,int* num_chars 00044 ) 00045 { 00046 *num_values = 0; 00047 *num_indexes = 0; 00048 *num_chars = 0; 00049 return 0; 00050 } 00051 00052 static int obj_create( const struct RTOp_obj_type_vtbl_t* vtbl, const void* instance_data, void** obj ) 00053 { 00054 *obj = NULL; 00055 return 0; 00056 } 00057 00058 static int obj_reinit( const struct RTOp_obj_type_vtbl_t* vtbl, const void* instance_data, void* obj ) 00059 { 00060 return 0; 00061 } 00062 00063 static int extract_state( 00064 const struct RTOp_obj_type_vtbl_t* vtbl 00065 ,const void * instance_data 00066 ,void * obj 00067 ,int num_values 00068 ,RTOp_value_type value_data[] 00069 ,int num_indexes 00070 ,RTOp_index_type index_data[] 00071 ,int num_chars 00072 ,RTOp_char_type char_data[] 00073 ) 00074 { 00075 assert( obj == NULL ); 00076 assert( num_values == 0 ); 00077 assert( num_indexes == 0 ); 00078 assert( num_chars == 0 ); 00079 return 0; 00080 } 00081 00082 static int load_state( 00083 const struct RTOp_obj_type_vtbl_t* vtbl 00084 ,const void * instance_data 00085 ,int num_values 00086 ,const RTOp_value_type value_data[] 00087 ,int num_indexes 00088 ,const RTOp_index_type index_data[] 00089 ,int num_chars 00090 ,const RTOp_char_type char_data[] 00091 ,void ** obj 00092 ) 00093 { 00094 assert( obj == NULL ); 00095 assert( num_values == 0 ); 00096 assert( num_indexes == 0 ); 00097 assert( num_chars == 0 ); 00098 return 0; 00099 } 00100 00101 const struct RTOp_obj_type_vtbl_t RTOp_obj_null_vtbl = 00102 { 00103 get_obj_type_num_entries 00104 ,obj_create 00105 ,obj_reinit 00106 ,RTOp_obj_free_free 00107 ,extract_state 00108 ,load_state 00109 };
1.7.4