version 1.2, 2000/08/21 08:31:20 |
version 1.6, 2003/12/11 00:19:24 |
|
|
* shall be made on your publication or presentation in any form of the |
* shall be made on your publication or presentation in any form of the |
* results obtained by use of the SOFTWARE. |
* results obtained by use of the SOFTWARE. |
* (4) In the event that you modify the SOFTWARE, you shall notify FLL by |
* (4) In the event that you modify the SOFTWARE, you shall notify FLL by |
* e-mail at risa-admin@flab.fujitsu.co.jp of the detailed specification |
* e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification |
* for such modification or the source code of the modified part of the |
* for such modification or the source code of the modified part of the |
* SOFTWARE. |
* SOFTWARE. |
* |
* |
|
|
* 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/builtin/math.c,v 1.1.1.1 1999/12/03 07:39:07 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/math.c,v 1.5 2003/11/08 01:12:02 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include <math.h> |
#include <math.h> |
Line 65 struct ftab math_tab[] = { |
|
Line 65 struct ftab math_tab[] = { |
|
{"dasin",Pdasin,1}, |
{"dasin",Pdasin,1}, |
{"dacos",Pdacos,1}, |
{"dacos",Pdacos,1}, |
{"datan",Pdatan,1}, |
{"datan",Pdatan,1}, |
|
{"floor",Pdfloor,1}, |
{"dfloor",Pdfloor,1}, |
{"dfloor",Pdfloor,1}, |
|
{"ceil",Pdceil,1}, |
{"dceil",Pdceil,1}, |
{"dceil",Pdceil,1}, |
|
{"rint",Pdrint,1}, |
{"drint",Pdrint,1}, |
{"drint",Pdrint,1}, |
{0,0,0}, |
{0,0,0}, |
}; |
}; |
|
|
d = floor(ToReal(ARG0(arg))); |
d = floor(ToReal(ARG0(arg))); |
if ( d < -9.223372036854775808e18 || d >= 9.223372036854775808e18 ) |
if ( d < -9.223372036854775808e18 || d >= 9.223372036854775808e18 ) |
error("dfloor : OverFlow"); |
error("dfloor : OverFlow"); |
|
if ( !d ) { |
|
*rp = 0; |
|
return; |
|
} |
a = (L)d; |
a = (L)d; |
if ( a < 0 ) { |
if ( a < 0 ) { |
sgn = -1; |
sgn = -1; |
|
|
d = ceil(ToReal(ARG0(arg))); |
d = ceil(ToReal(ARG0(arg))); |
if ( d < -9.223372036854775808e18 || d >= 9.223372036854775808e18 ) |
if ( d < -9.223372036854775808e18 || d >= 9.223372036854775808e18 ) |
error("dceil : OverFlow"); |
error("dceil : OverFlow"); |
|
if ( !d ) { |
|
*rp = 0; |
|
return; |
|
} |
a = (L)d; |
a = (L)d; |
if ( a < 0 ) { |
if ( a < 0 ) { |
sgn = -1; |
sgn = -1; |
|
|
if ( au ) { |
if ( au ) { |
NEWQ(q); SGN(q) = sgn; NM(q)=NALLOC(2); DN(q)=0; |
NEWQ(q); SGN(q) = sgn; NM(q)=NALLOC(2); DN(q)=0; |
PL(NM(q))=2; BD(NM(q))[0]=al; BD(NM(q))[1] = au; |
PL(NM(q))=2; BD(NM(q))[0]=al; BD(NM(q))[1] = au; |
} else { |
} else if ( al ) { |
UTOQ(al,q); SGN(q) = sgn; |
UTOQ(al,q); SGN(q) = sgn; |
} |
} else |
|
q = 0; |
*rp = q; |
*rp = q; |
} |
} |