| 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; |
| } |
} |