/home/doxygen/libascend/compiler/exprsym.h

Go to the documentation of this file.
00001 /*  ASCEND modelling environment
00002     Copyright (C) 1994,1995 Kirk Andre Abbott.
00003     Copyright (C) 2006 Carnegie Mellon University
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2, or (at your option)
00008     any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 59 Temple Place - Suite 330,
00018     Boston, MA 02111-1307, USA.
00019 *//*
00034  *  by Kirk Abbott
00035  *  Created: November 21, 1994
00036  *  Last in CVS: $Revision: 1.5 $ $Date: 1997/07/18 12:29:23 $ $Author: mthomas $
00037 */
00038 
00039 
00040 #ifndef ASC_EXPRSYM_H
00041 #define ASC_EXPRSYM_H
00042 
00052 typedef struct Func Func;
00053 
00054 typedef struct relation_term Term;
00057 typedef struct relation RelationINF;    
00059 typedef int ExprSymFilterFn(struct Instance *);
00060 
00061 #define K_TERM(i) ((Term *)(i))
00062 
00064 extern Term *TermSimplify(Term *term);
00070 extern Term *Derivative(Term *term, unsigned long wrt,
00071                         ExprSymFilterFn *filter);
00079 extern void PrepareDerivatives(int setup, int n_buffers, int buffer_length);
00089 #define ShutDownDerivatives() PrepareDerivatives(0,0,0)
00090 
00094 extern Term *TermDerivative(Term *term, unsigned long wrt,
00095                             ExprSymFilterFn *filter);
00102 extern RelationINF *RelDerivative(RelationINF *rel, unsigned long wrt,
00103                                   ExprSymFilterFn *filter);
00114 extern void RelDestroySloppy(RelationINF *rel);
00134 extern RelationINF *RelDeriveSloppy(RelationINF *rel, unsigned long wrt,
00135                                     ExprSymFilterFn *filter);
00164 /* @} */
00165 
00166 #endif /* ASC_EXPRSYM_H */
00167 

Generated on Thu Jul 17 04:00:10 2008 for libascend by  doxygen 1.5.1