version 1.10, 2003/05/22 07:01:41 |
version 1.14, 2004/05/14 06:02:54 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/arith.c,v 1.9 2003/03/27 02:59:16 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/arith.c,v 1.13 2004/04/14 07:27:42 ohara Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 84 struct oAFUNC afunc[] = { |
|
Line 84 struct oAFUNC afunc[] = { |
|
/* O_GFMMAT=15 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
/* O_GFMMAT=15 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
/* O_BYTEARRAY=16 */ {notdef,notdef,notdef,notdef,notdef,notdef,compbytearray}, |
/* O_BYTEARRAY=16 */ {notdef,notdef,notdef,notdef,notdef,notdef,compbytearray}, |
/* O_QUOTE=17 */ {addquote,subquote,mulquote,divquote,pwrquote,chsgnquote,(int(*)())notdef}, |
/* O_QUOTE=17 */ {addquote,subquote,mulquote,divquote,pwrquote,chsgnquote,(int(*)())notdef}, |
|
/* O_OPTLIST=18 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
|
/* O_SYMBOL=19 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
|
/* O_RANGE=20 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
|
/* O_TB=21 */ {notdef,notdef,notdef,notdef,notdef,notdef,(int(*)())notdef}, |
|
/* O_DPV=22 */ {adddv,subdv,muldv,notdef,notdef,chsgndv,compdv}, |
}; |
}; |
|
|
void arf_init() { |
void arf_init() { |
|
|
(*afunc[OID(a)].add)(vl,a,b,r); |
(*afunc[OID(a)].add)(vl,a,b,r); |
else if ( (mid = MAX(OID(a),OID(b))) <= O_R ) |
else if ( (mid = MAX(OID(a),OID(b))) <= O_R ) |
(*afunc[mid].add)(vl,a,b,r); |
(*afunc[mid].add)(vl,a,b,r); |
|
else if ( (mid = MAX(OID(a),OID(b))) == O_DP && MIN(OID(a),OID(b)) <= O_R ) |
|
(*afunc[mid].add)(vl,a,b,r); |
else |
else |
notdef(vl,a,b,r); |
notdef(vl,a,b,r); |
} |
} |
|
|
case O_DP: |
case O_DP: |
if ( bid <= O_P ) |
if ( bid <= O_P ) |
(*afunc[O_DP].mul)(vl,a,b,r); |
(*afunc[O_DP].mul)(vl,a,b,r); |
else if ( bid == O_MAT || bid == O_VECT ) |
else if ( bid == O_MAT || bid == O_VECT || bid == O_DPV ) |
(*afunc[bid].mul)(vl,a,b,r); |
(*afunc[bid].mul)(vl,a,b,r); |
else |
else |
notdef(vl,a,b,r); |
notdef(vl,a,b,r); |