[BACK]Return to math.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Diff for /OpenXM_contrib2/asir2000/builtin/math.c between version 1.3 and 1.7

version 1.3, 2000/08/22 05:03:59 version 1.7, 2003/12/24 08:00:38
Line 45 
Line 45 
  * 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.2 2000/08/21 08:31:20 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/math.c,v 1.6 2003/12/11 00:19:24 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},
 };  };
Line 188  Q *rp;
Line 191  Q *rp;
         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;
                 a = -a;                  a = -a;
         } else          } else
                 sgn = 1;                  sgn = 1;
 #if defined(i386) || defined(__alpha) || defined(VISUAL)  #if defined(i386) || defined(__alpha) || defined(VISUAL) || defined(__x86_64)
         au = ((unsigned int *)&a)[1];          au = ((unsigned int *)&a)[1];
         al = ((unsigned int *)&a)[0];          al = ((unsigned int *)&a)[0];
 #else  #else
Line 227  Q *rp;
Line 234  Q *rp;
         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;
                 a = -a;                  a = -a;
         } else          } else
                 sgn = 1;                  sgn = 1;
 #if defined(i386) || defined(__alpha) || defined(VISUAL)  #if defined(i386) || defined(__alpha) || defined(VISUAL) || defined(__x86_64)
         au = ((unsigned int *)&a)[1];          au = ((unsigned int *)&a)[1];
         al = ((unsigned int *)&a)[0];          al = ((unsigned int *)&a)[0];
 #else  #else
Line 280  Q *rp;
Line 291  Q *rp;
                 a = -a;                  a = -a;
         } else          } else
                 sgn = 1;                  sgn = 1;
 #if defined(i386) || defined(__alpha) || defined(VISUAL)  #if defined(i386) || defined(__alpha) || defined(VISUAL) || defined(__x86_64)
         au = ((unsigned int *)&a)[1];          au = ((unsigned int *)&a)[1];
         al = ((unsigned int *)&a)[0];          al = ((unsigned int *)&a)[0];
 #else  #else
Line 290  Q *rp;
Line 301  Q *rp;
         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;
 }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>