• Main Page
  • Data Structures
  • Files
  • File List
  • Globals

ne_dyn.h

Go to the documentation of this file.
00001 /*===========================================================================
00002  NetEvo Foundation Library
00003  Copyright (C) 2009, 2010 Thomas E. Gorochowski <tgorochowski@me.com>
00004  Bristol Centre for Complexity Sciences, University of Bristol, Bristol, UK
00005  ---------------------------------------------------------------------------- 
00006  NetEvo is a computing framework designed to allow researchers to investigate 
00007  evolutionary aspects of dynamical complex networks. By providing tools to 
00008  easily integrate each of these factors in a coherent way, it is hoped a 
00009  greater understanding can be gained of key attributes and features displayed 
00010  by complex systems.
00011  
00012  NetEvo is open-source software released under the Open Source Initiative 
00013  (OSI) approved Non-Profit Open Software License ("Non-Profit OSL") 3.0. 
00014  Detailed information about this licence can be found in the COPYING file 
00015  included as part of the source distribution.
00016  
00017  This library is distributed in the hope that it will be useful, but
00018  WITHOUT ANY WARRANTY; without even the implied warranty of
00019  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  ============================================================================*/
00034 #ifndef NE_DYN_H
00035 #define NE_DYN_H
00036 
00037 
00038 #include "ne_std.h"
00039 
00046 typedef ne_err_code_t ne_dyn_n_fn_t  (int i, void *sys, double t, const double *y, double *dydt, double *params);
00047 
00054 typedef ne_err_code_t ne_dyn_e_fn_t  (int eid, int i, int j, void *sys, double t, const double *y, double *dydt, double *params);
00055 
00057 typedef struct {
00058    char           *name;   
00059    ne_int_t        states; 
00060    ne_dyn_n_fn_t  *fn;     
00061 } ne_dyn_node_t;
00062 
00064 typedef struct {
00065    char           *name;   
00066    ne_int_t        states; 
00067    ne_dyn_e_fn_t  *fn;     
00068 } ne_dyn_edge_t;
00069 
00071 typedef struct ne_dyn_node_lib_el {
00072    ne_dyn_node_t             *nodeDyn; 
00073    struct ne_dyn_node_lib_el *next;    
00074 } ne_dyn_node_lib_t;
00075 
00077 typedef struct ne_dyn_edge_lib_el {
00078    ne_dyn_edge_t             *edgeDyn; 
00079    struct ne_dyn_edge_lib_el *next;    
00080 } ne_dyn_edge_lib_t;
00081 
00082 
00087 void ne_dyn_finalise (void);
00088 
00090 ne_err_code_t ne_dyn_add_node_dyn (ne_dyn_node_t *nodeDyn);
00091 
00093 ne_err_code_t ne_dyn_add_edge_dyn (ne_dyn_edge_t *edgeDyn);
00094 
00096 ne_err_code_t ne_dyn_remove_node_dyn (const char *name);
00097 
00099 ne_err_code_t ne_dyn_remove_edge_dyn (const char *name);
00100 
00102 ne_dyn_node_t * ne_dyn_find_node_dyn (const char *name);
00103 
00105 ne_dyn_edge_t * ne_dyn_find_edge_dyn (const char *name);
00106 
00107 
00108 #endif /* NE_DYN_H */

Generated on Thu Aug 26 2010 11:04:24 for NetEvo by  doxygen 1.7.1