Mercurial > hg > jgplsrc
diff vx.h @ 0:e0bbaa717f41 draft default tip
lol J
author | Jordi GutiƩrrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 25 Nov 2013 11:56:30 -0500 (2013-11-25) |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/vx.h @@ -0,0 +1,57 @@ +/* Copyright 1990-2011, Jsoftware Inc. All rights reserved. */ +/* License in license.txt. */ +/* */ +/* Extended Precision */ + +#if SY_64 +#define XIDIG 5 /* max # x digits in an integer */ +#else +#define XIDIG 3 +#endif + +#define XBASE (I)10000 +#define XBASEN (I)4 +#define XPINF (I)99999 +#define XNINF (I)-99999 +#define XF1(f) X f(J jt, X w) +#define XF2(f) X f(J jt,X a,X w) +#define XDIG(a) (*(AV(a)+AN(a)-1)) /* leading digit */ +#define XMAX(x,y) (1==xcompare(x,y)?x:y) +#define XMIN(x,y) (1==xcompare(x,y)?y:x) +#define XDIV(x,y) xdiv(x,y,jt->xmode) +#define XCUBE(x) xtymes(x,xtymes(x,x)) + + + +/* values for jt->xmode */ + +#define XMFLR 0 /* floor, round down */ +#define XMCEIL 1 /* ceiling, round up */ +#define XMEXACT 2 /* exact, error if impossible */ +#define XMEXMT 3 /* exact, empty if impossible */ +#define XMRND 4 /* round, round to nearest */ + + +extern XF1(jtxfact); +extern XF1(jtxsgn); +extern XF1(jtxsq); +extern XF1(jtxsqrt); +extern XF1(jtxstd); + +extern XF2(jtxbin); +extern XF2(jtxgcd); +extern XF2(jtxlcm); +extern XF2(jtxminus); +extern XF2(jtxplus); +extern XF2(jtxpow); +extern XF2(jtxtymes); + +extern X jtxc(J,I); +extern int jtxcompare(J,X,X); +extern X jtxdiv(J,X,X,I); +extern B jtxdivrem(J,X,X,X*,X*); +extern X jtxev1(J,A,C*); +extern X jtxev2(J,A,A,C*); +extern I jtxint(J,X); +extern D jtxlogabs(J,X); +extern X jtxrem(J,X,X);