8ed213e0ca01f5f3c332f7546a6cf30893fa0e3f
[scilab.git] / scilab / modules / differential_equations / src / c / dassltable.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA
4  * ...
5  * 
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at    
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13 #include "AddFunctionInTable.h"
14 #include "machine.h"
15 /***********************************
16 * Search Table for dassl 
17 ***********************************/
18
19 #define ARGS_fresd double *,double*,double*,double*,int*,double*,int*
20 typedef int * (*fresdf)(ARGS_fresd);
21
22 #define ARGS_fjacd double *,double*,double*,double*,double*,double*,int*
23 typedef int * (*fjacdf)(ARGS_fjacd);
24
25 /***********************************
26 * Search Table for dasrt 
27 ***********************************/
28
29 #define ARGS_fsurfd int*,double *,double*,int*,double*,double*,int*
30 typedef int * (*fsurfdf)(ARGS_fsurfd);
31
32
33 #define ARGS_fsurf int*,double *,double*,int*,double*
34 typedef int * (*fsurff)(ARGS_fsurf);
35
36 /**************** fresd ***************/
37 extern void C2F(dres1)(ARGS_fresd);
38 extern void C2F(dres2)(ARGS_fresd);
39 extern void C2F(res1)(ARGS_fresd);
40 extern void C2F(res2)(ARGS_fresd);
41 void C2F(fresd)(ARGS_fresd);
42 void C2F(setfresd)(char *name, int *rep);
43
44 FTAB FTab_fresd[] =
45 {
46         {"dres1", (voidf)  C2F(dres1)},
47         {"dres2", (voidf)  C2F(dres2)},
48         {"res1", (voidf)  C2F(res1)},
49         {"res2", (voidf)  C2F(res2)},
50         {(char *) 0, (voidf) 0}
51 };
52
53 /**************** fjacd ***************/
54 extern void C2F(djac1)(ARGS_fjacd);
55 extern void C2F(djac2)(ARGS_fjacd);
56 extern void C2F(jac2)(ARGS_fjacd);
57 void C2F(fjacd)(ARGS_fjacd);
58 void C2F(setfjacd)(char *name, int *rep);
59
60 FTAB FTab_fjacd[] =
61 {
62         {"djac1", (voidf)  C2F(djac1)},
63         {"djac2", (voidf)  C2F(djac2)},
64         {"jac2", (voidf)  C2F(jac2)},
65         {(char *) 0, (voidf) 0}
66 };
67
68
69 /**************** fsurf ***************/
70 void C2F(fsurf)(ARGS_fsurf);
71 void C2F(setfsurf)(char *name, int *rep);
72
73 FTAB FTab_fsurf[] ={
74 {(char *) 0, (voidf) 0}};
75 /**************** fsurfd ***************/
76 extern void C2F(gr1)(ARGS_fsurfd);
77 extern void C2F(gr2)(ARGS_fsurfd);
78 void C2F(fsurfd)(ARGS_fsurfd);
79 void C2F(setfsurfd)(char *name, int *rep);
80
81 FTAB FTab_fsurfd[] ={
82 {"gr1", (voidf)  C2F(gr1)},
83 {"gr2", (voidf)  C2F(gr2)},
84 {(char *) 0, (voidf) 0}};
85
86 /***********************************
87 * Search Table for dassl or dassrt 
88 ***********************************/
89
90 /** the current function fixed by setfresd **/
91
92 static fresdf fresdfonc ;
93
94 /** function call **/
95
96 void C2F(fresd)(double *t, double *y, double *ydot, double *res, int *ires, double *rpar, int *ipar)
97 {
98         (*fresdfonc)(t,y,ydot,res,ires,rpar,ipar);
99 }
100
101 /** fixes the function associated to name **/
102
103 void C2F(setfresd)(char *name, int *rep)
104 {
105         fresdfonc = (fresdf) AddFunctionInTable(name,rep,FTab_fresd);
106 }
107
108
109 /** the current function fixed by setfjacd **/
110
111 static fjacdf fjacdfonc ;
112
113 /** function call **/
114
115 void C2F(fjacd)(double *t, double *y, double *ydot, double *pd, double *cj, double *rpar, int *ipar)
116 {
117         (*fjacdfonc)(t,y,ydot,pd,cj,rpar,ipar);
118 }
119
120 /** fixes the function associated to name **/
121
122 void C2F(setfjacd)(char *name, int *rep)
123 {
124         fjacdfonc = (fjacdf) AddFunctionInTable(name,rep,FTab_fjacd);
125 }
126
127
128 /** the current function fixed by setfsurfd **/
129
130 static fsurfdf fsurfdfonc ;
131
132 /** function call **/
133
134
135 void C2F(fsurfd)(int *neq, double *t, double *y, int *ng, double *gout, double *rpar, int *ipar)
136 {
137         (*fsurfdfonc)(neq,t,y,ng,gout,rpar,ipar);
138 }
139
140 /** fixes the function associated to name **/
141
142 void C2F(setfsurfd)(char *name, int *rep)
143 {
144         fsurfdfonc = (fsurfdf) AddFunctionInTable(name,rep,FTab_fsurfd);
145 }
146
147 /***********************************
148 * Search Table for dasrt ??? 
149 **********************************/
150
151 /** the current function fixed by setfsurf **/
152
153 static fsurff fsurffonc ;
154
155 /** function call **/
156
157 void C2F(fsurf)(int *ny, double *t, double *y, int *ng, double *gout)
158 {
159         (*fsurffonc)(ny, t, y, ng, gout) ;
160 }
161
162 /** fixes the function associated to name **/
163
164 void C2F(setfsurf)(char *name, int *rep)
165 {
166         fsurffonc = (fsurff) AddFunctionInTable(name,rep,FTab_fsurf);
167 }