1: // 2: // Heccer : a compartmental solver that implements efficient Crank-Nicolson 3: // integration for neuronal models. 4: // 5: 6: ////////////////////////////////////////////////////////////////////////////// 7: //' 8: //' Heccer : testbed C implementation 9: //' 10: //' Copyright (C) 2006-2008 Hugo Cornelis 11: //' 12: //' functional ideas .. Hugo Cornelis, hugo.cornelis@gmail.com 13: //' 14: //' coding ............ Hugo Cornelis, hugo.cornelis@gmail.com 15: //' 16: ////////////////////////////////////////////////////////////////////////////// 17: 18: 19: #ifndef HECCER_INTERMEDIARY_H 20: #define HECCER_INTERMEDIARY_H 21: 22: 23: #include <stdio.h> 24: 25: 26: struct Intermediary; 27: struct MechanismIndex; 28: 29: 30: #include "compartment.h" 31: #include "mechanism.h" 32: 33: 34: #ifndef TRUE 35: #define TRUE 1 36: #endif 37: #ifndef FALSE 38: #define FALSE 0 39: #endif 40: 41: 42: //s heccer main structure 43: 44: struct Intermediary 45: { 46: //m compartment array 47: 48: int iCompartments; 49: 50: struct Compartment *pcomp; 51: 52: //m all other mathematical components 53: 54: struct MathComponentArray *pmca; 55: 56: //m compartment 2 first mechanism number 57: 58: int *piC2m; 59: 60: #ifdef HECCER_SOURCE_NEUROSPACES 61: 62: //m identification of the originator, mostly a cell or cell 63: //m population, but perhaps just a segment vector 64: 65: //m start range 66: 67: int iSerialStart; 68: 69: //m end range 70: 71: int iSerialEnd; 72: 73: #endif 74: 75: }; 76: 77: 78: //f prototypes 79: 80: int HeccerIntermediaryBuildIndex(struct Heccer *pheccer); 81: 82: int 83: HeccerIntermediaryDump 84: (struct Intermediary *pinter, FILE *pfile, int iSelection); 85: 86: struct MathComponent * 87: HeccerIntermediaryLookup(struct Heccer *pheccer, int i); 88: 89: 90: #endif 91: 92: 93: