0e806fc1d4bd3b7f1c54f7d6fed8c361caea7526
[scilab.git] / scilab / modules / differential_equations / src / c / impltable.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 * impl   (  fres, fadda, fj2 )
17 ***********************************/
18
19 #define ARGS_fres int*,double *,double *,double *,double*,int*
20 typedef void (*fresf)(ARGS_fres);
21
22
23 #define ARGS_fadda int*,double *,double *,int*,int*,double*,int*
24 typedef void (*faddaf)(ARGS_fadda);
25
26 #define ARGS_fj2 int *,double *,double *,double *,int *,int *,double*,int *
27 typedef void (*fj2f)(ARGS_fj2);
28
29 /**************** fres ***************/
30 extern void C2F(resid)(ARGS_fres);
31 void C2F(fres)(ARGS_fres);
32 void C2F(setfres)(char *name, int *rep);
33
34 FTAB FTab_fres[] ={
35         {"resid", (voidf)  C2F(resid)},
36         {(char *) 0, (voidf) 0}};
37 /**************** fadda ***************/
38 extern void C2F(aplusp)(ARGS_fadda);
39 void C2F(fadda)(ARGS_fadda);
40 void C2F(setfadda)(char *name, int *rep);
41
42 FTAB FTab_fadda[] ={
43 {"aplusp", (voidf)  C2F(aplusp)},
44 {(char *) 0, (voidf) 0}};
45
46 /**************** fj2 ***************/
47 extern void C2F(dgbydy)(ARGS_fj2);
48 void C2F(fj2)(ARGS_fj2);
49 void C2F(setfj2)(char *name, int *rep);
50
51 FTAB FTab_fj2[] ={
52         {"dgbydy", (voidf)  C2F(dgbydy)},
53         {(char *) 0, (voidf) 0}};
54
55 /***********************************
56 * Search Table for impl 
57 ***********************************/
58
59 /** the current function fixed by setfres **/
60
61 static fresf fresfonc ;
62
63 /** function call **/
64
65 void C2F(fres)(int *ny, double *t, double *y, double *s, double *r, int *ires)
66 {
67         (*fresfonc)(ny,t,y,s,r,ires);
68 }
69
70 /** fixes the function associated to name **/
71
72 void C2F(setfres)(char *name, int *rep)
73 {
74         fresfonc = (fresf) AddFunctionInTable(name,rep,FTab_fres);
75 }
76
77
78 /** the current function fixed by setfadda **/
79
80 static faddaf faddafonc ;
81
82 void C2F(fadda)(int *ny, double *t, double *y, int *ml, int *mu, double *p, int *nrowp)
83 {
84         (*faddafonc)(ny,t,y,ml,mu,p,nrowp);
85 }
86
87 /** fixes the function associated to name **/
88
89 void C2F(setfadda)(char *name, int *rep)
90 {
91         faddafonc = (faddaf) AddFunctionInTable(name,rep,FTab_fadda);
92 }
93
94
95 /** the current function fixed by setfj2 **/
96
97 static fj2f fj2fonc ;
98
99 /** function call **/
100
101 void C2F(fj2)(int *ny, double *t, double *y, double *s, int *ml, int *mu, double *p, int *nrowp)
102 {
103         (*fj2fonc)(ny,t,y,s,ml,mu,p,nrowp);
104 }
105
106 /** fixes the function associated to name **/
107
108 void C2F(setfj2)(char *name, int *rep)
109 {
110         fj2fonc = (fj2f) AddFunctionInTable(name,rep,FTab_fj2);
111 }