version 1.1, 2002/08/14 03:51:38 |
version 1.3, 2004/10/06 11:58:51 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/user.c,v 1.2 2004/09/29 08:50:23 noro Exp $ */ |
|
|
/* a sample file for adding builtin functions */ |
/* a sample file for adding builtin functions */ |
|
|
|
|
|
|
void Ppartial_derivative(); |
void Ppartial_derivative(); |
void partial_derivative(VL vl,P p,V v,P *r); |
void partial_derivative(VL vl,P p,V v,P *r); |
|
void Pzadd(),Pzsub(),Pzmul(); |
|
|
struct ftab user_tab[] = { |
struct ftab user_tab[] = { |
/* |
/* |
{"partial_derivative",Ppartial_derivative,2}, |
{"partial_derivative",Ppartial_derivative,2}, |
*/ |
*/ |
|
{"zadd",Pzadd,2}, |
|
{"zsub",Pzsub,2}, |
|
{"zmul",Pzmul,2}, |
{0,0,0}, |
{0,0,0}, |
}; |
}; |
|
|
|
void Pzadd(NODE arg,Q *rp) |
|
{ |
|
Z z0,z1,z2; |
|
|
|
z0 = qtoz((Q)ARG0(arg)); |
|
z1 = qtoz((Q)ARG1(arg)); |
|
z2 = addz(z0,z1); |
|
printz(z2); printf(" "); |
|
*rp = ztoq(z2); |
|
} |
|
|
|
void Pzsub(NODE arg,Q *rp) |
|
{ |
|
Z z0,z1,z2; |
|
|
|
z0 = qtoz((Q)ARG0(arg)); |
|
z1 = qtoz((Q)ARG1(arg)); |
|
z2 = subz(z0,z1); |
|
printz(z2); printf(" "); |
|
*rp = ztoq(z2); |
|
} |
|
|
|
void Pzmul(NODE arg,Q *rp) |
|
{ |
|
Z z0,z1,z2; |
|
|
|
z0 = qtoz((Q)ARG0(arg)); |
|
z1 = qtoz((Q)ARG1(arg)); |
|
z2 = mulz(z0,z1); |
|
printz(z2); printf(" "); |
|
*rp = ztoq(z2); |
|
} |
|
|
/* |
/* |
void Ppartial_derivative(NODE arg,P *rp) |
void Ppartial_derivative(NODE arg,P *rp) |