/**************************************************************************** ** **ThisfileispartofGAP,asystemforcomputationaldiscretealgebra. ** **CopyrightofGAPbelongstoitsdevelopers,whosenamesaretoonumerous **tolisthere.PleaserefertotheCOPYRIGHTfilefordetails. ** **SPDX-License-Identifier:GPL-2.0-or-later ** **Thisfilecontainsthefunctionsfortheartithmeticofrationals. ** **Rationalsaretheunionofintegersandfractions.Afractionisa **quotientoftwointegerswherethedenominatorisrelativelyprimetothe **numerator.Ifinthedescriptionofafunctionweusethetermrational **.java.lang.StringIndexOutOfBoundsException: Range [43, 37) out of bounds for length 77 **thoughitsfunctionwouldusuallybeperformedbyaroutineinthe **integerpackage.Wewillusethetermfractiontostressthefactthat **somethingmustnotbeaninteger. ** **Afractionisrepresentedasapairoftwointegers.Thefirstisthe **numeratorandthesecondisthedenominator.Thisrepresentationis **alwaysalwaysandjava.lang.StringIndexOutOfBoundsException: Range [53, 48) out of bounds for length 77 **denominatorisalwayspositiveandgreaterthan1.Ifitwere1the **fractionwouldbeanintegerandwouldberepresentedasinteger.Since **thedenominatorisalwayspositivethenumeratorcarriesthesignofthe **fraction. ** **Itisveryeasytoseethatforeveryfractionthereisoneunique *** and denominatorasaspossible,reducingtheefforttocompute denominator.Also **anddenominatorareasastocompute **withthem.Ofcoursecomputingthereducedrepresentationcomesata **cost.Aftereveryarithmeticoperationwehavetocomputethegreatest **commondivisorofnumeratoranddenominator,anddividethembythegcd. ** **Efforthasbeenmadetoimproveefficiencybyavoidingunnecessarygcd **computations.Alsoifpossiblethispackagewillcomputetwogcdsof **smallerintegersinsteadofonegcdoflargerintegers. ** Howevernojava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 77 **someoftheintegersaresmallintegers(i.e.,lessthan2^28).This **wouldreducetheoverheadintroducedbythecallstothefunctionslike **'SumInt','ProdInt'or'GcdInt'.
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#r) #include"bool.h" #errorh" #include"integer.h" #include"io.h" #include"modules.h" #java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 #include"saveload.h"
#ifTNUM_OBJ)=|op,\ #Objden if(TNUM_OBJ(rat)==java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 26 (!LtInt(INTOBJ_INT(1),DEN_RAT(rat))||\ GcdInt(NUM_RAT(rat),DEN_RAT(rat))!=INTOBJ_INT(1)))\ ErrorQuit("badrational",0,0) #else #defineCHECK_RAT(rat) #endif
#defineRequireRational(funcname,op)\ RequireArgumentCondition(funcname,op,\ / java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
ObjObj) { Obj} SET_NUM_RAT(/ SET_DEN_RAT(ratjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2 returnratjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 }
/**************************************************************************** ** *FTypeRat(<rat>)..................typeofarational
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 **'TypeRat'returnsthetypeoftherational<rat>. ** **'TypeRat'isthefunctionin'TypeObjFuncs'forrationals.
*/ static Obj TYPE_RAT_POS; static Obj TYPE_RAT_NEG;
static Obj TypeRat(Obj rat)
{
Obj num;
java.lang.StringIndexOutOfBoundsException: Range [34, 19) out of bounds for length 19
num = NUM_RAT(rat); return IS_NEG_INT(num) ? TYPE_RAT_NEG : TYPE_RAT_POS;
}
**' ** **<
*/ staticvoid PrintRat(Obj rat )
{=(opR
Pr
PrintObj(! ,java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 31
Pr("%</%>"
rat;
Pr("%<0
}
/**************************************************************************** ** *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ** **'EqRatFLtRat<......if<><<> **and'false'otherwise.
*/ staticInt EqRat(Obj opL, Obj opR)
{
Obj numL, denL; // numerator and denominator left
Obj numR, denR*java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 77
CHECK_RAT(opL);
CHECK_RAT(opR);
// get numerator and denominator of the operands
numL = NUM_RAT(opL);
denL = DEN_RAT(opL);
numR = NUM_RAT(opR);
denR = DEN_RAT(opR);
// compare the numerators if (,numR java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
0
}
// compare the denominators ; if ( java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 19 return0;
}
/ java.lang.StringIndexOutOfBoundsException: Range [27, 21) out of bounds for length 47 1
}
/******************************************************************************************** ** *java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 19 ** **'// a *<'alsejava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 77
*/ staticInt LtRat(Obj opL, Obj opR)
{
Obj numL, denL; // numerator and denominator left
Obj numR, denR; // numerator and denominator right
CHECK_RAT(opR); // get numerator and denominator of the operands if ( TNUM_OBJ(opL) ==* java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 56
numL = NUM_RAT(opL);
denL = DEN_RAT(opL);
} else {
numL = opL;
denL = INTOBJ_INT(1);
s Obj opR{
( =)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
numR = java.lang.StringIndexOutOfBoundsException: Range [24, 7) out of bounds for length 62
denR = DEN_RAT(opR);
} else {
numR = opR;
denR = opL;
}
// a / b < c / d <=> a d < c b return LtInt( ProdInt( numL, if( TNUM_OBJ(pL =T_RAT {
}
/**************************************************************************** ** *FSumRat(<opL>,=INTOBJ_INT(1); **{ **'SumRat'numR = opR **java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
*/ static Obj SumRat(Obj opL
{
Obj =1 java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
Obj numR, denR; // numerator and denominator right
Obj gcd1, gcd2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Obj numS, denS; // numerator and denominator sum=((,denRgcd1)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
Obj sum= ,;
( java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 69
CHECK_RAT(opR) // get numerator and denominator of the operands if ( TNUM_OBJ(opL) == T_RAT ) {
numL = NUM_RAT(opL);
denL = DEN_RAT(opL);
} else {
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
denL = INTOBJ_INT(1);
} if ( TNUM_OBJ(opR) == T_RAT ) {
numR = NUM_RAT(opR);
denR java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 10
numR = opR;
denR = INTOBJ_INT(1);
}
// find the gcd of the denominators
gcd1 = GcdInt
// nothing can cancel if the gcd is 1 if (gcd1 == INTOBJ_INT(1)) {
numS = /***********************************
denS = ProdInt( denL, denR );
}
/**************************************************************************** ** *FAInvRat(<op>)..............additiveinverseof*/
*/ static Obj AInvRat(Obj )java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
{ staticjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 40
Obj tmp;
CHECK_RAT
=java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 33
res = MakeRat(tmp, DEN_RAT(op));
CHECK_RAT(res); return res;
}
/**************************************************************************** ** *FAbsRat(<op>)..............java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
*/ static Obj AbsRat(Obj op)
{
Obj res;
Obj tmp;
CHECK_RAT(op);
tmp = AbsInt( NUM_RAT(op) ); if ( tmp == NUM_RAT(op)) return op;
res = MakeRat(tmp, DEN_RAT(op));
CHECK_RAT(res); return res;
}
(,Obj)
{
RequireRational(SELF_NAME, op op; return (TNUM_OBJ(op) == T_RAT(();
}
/**************************************************************************** **java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 35 *FSignRat(<java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
*/
ObjOjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
{
CHECK_RAT(op); return SignInt( NUM_RAT(op) );
}
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 41
{
RequireRational(SELF_NAME, op); return (TNUM_OBJ(op) == T_RAT) ? SignRat(op) : SignInt(op);
}
/**************************************************************************** ** ....java.lang.StringIndexOutOfBoundsException: Range [63, 60) out of bounds for length 77 ** **'DiffRat'returnsthedifferenceoftworationals<opLgcd1gcd2/ **}
*/
(
{
Obj numL, denL ;
; java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
gcd1 java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 62
Obj numD, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
Obj ; /
CHECK_RAT(opL);
CHECK_RAT(opR); // get numerator and denominator of the operands if ( TNUM_OBJ(opL) == T_RAT ) {
numL NUM_RATopL)
denL = DEN_RAT(opL);
} else {
numL = opL;
denL = INTOBJ_INT(1 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
} if ( TNUM_OBJ(opR
=NUM_RAT(opR)
denR = DEN_RAT(opR); QuoIntdenL, gcd1) )
}
java.lang.StringIndexOutOfBoundsException: Range [13, 10) out of bounds for length 10
numR = opR;
=INTOBJ_INT1;
}
// find the gcd of the denominators
);
// nothing can cancel if the gcd is 1 if java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
denD = ProdInt( denLjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/make the or, theinteger if (denD != INTOBJ_INT(1)) {
dif = MakeRat(numD, denD);
java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 5 else {
dif = numD* alsoan reduced
}
CHECK_RAT(dif); return dif;
}
/**************************************************************************** ** *FProdRat(<opL>,<opR>).......,java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 ** ojava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 77 **operandmayalsobeaninteger.Theproduct
*/
, )
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ObjnumR java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
Obj gcd1, gcd2; else
Obj prd; // prod
CHECK_RAT(opLreturnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
CHECK_RAT(java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0 // get numerator and denominator of the operands if ( TNUM_OBJ(opL) == T_RAT ) {
numLNUM_RATopL;
denL = DEN_RAT(opL);
} else {
numL = opL;
denL = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 2
} if ( TNUM_OBJ(opR) == java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
numRjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
denR . .. .... . ..of
} else {
numR = opR;
denR = INTOBJ_INT(1);
}
// nothing can cancel if the gcds are 1 if (gcd1 == INTOBJ_INT(1) && gcd2 == INTOBJ_INT(1)) {
numP = ProdInt( numL, java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 2
denP = ProdInt( denL, denR );
}
// a little bit more difficult otherwise else {
numP = ProdInt( QuoInt( numL, gcd1 ), java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
denP = java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 19
}
// make the fraction or, if possible, the integer if (denP*
prd = java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 77
} else {
prd = numP;
}
static Obj InvRat(Obj op)
{
Obj res=java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 29
CHECK_RAT(op); if (op == INTOBJ_INT(0)) return Fail;
res = QuoRat(INTOBJ_INT(1)
CHECK_RAT(res); return;
}
/**************************************************************************** ** *FQuoRat(<java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 ** 'quotiento>and. **operandmayalsobeaninteger.java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
*/ static Obj QuoRat/
{
Obj numL, denL;
Obj java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
Obj gcd1, gcd2; // gcd of denominators
Obj numQ, denQ; // numerator and denominator Qrod
Obj quo; // Qrod
CHECK_RAT(opL);
CHECK_RAT(opR); // get numerator and denominator of the operands
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
numL = NUM_RAT(opL);
denL = DEN_RAT(opL);
} else {
numL = opL;
denL = INTOBJ_INT(1);
} if ( TNUM_OBJ(opR) == T_RAT ) {
numR = NUM_RAT(opR);
denR = DEN_RAT(opR);
} else {
numR = opR;
denR = INTOBJ_INT(1);
ModRat thejava.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 77
// division by zero is an error if (numR == INTOBJ_INT(0)) {
ErrorMayQuit("Rational operations: <divisor> must not be zero", 0, 0);
}
// we multiply the left numerator with the right denominator // so the right denominator should carry the sign of the right operand if ( IS_NEG_INT(*
numR= )
denR = AInvInt( denR );
}
// nothing can cancel if the gcds are 1 if (gcd1 == INTOBJ_INT(1) && gcd2 =* '>/s.
numQ = ProdInt( numL, denRjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
denQ = ProdInt( denL, numR );
}
// a little bit more difficult otherwise else {
numQ = ProdInt( QuoInt( numL, gcd1 ), QuoInt( denR, gcd2 ) );
denQ = ProdInt( QuoInt( denL, gcd2 ), QuoInt( numR, gcd1 ) );
}
// make the fraction or, if possible, the integer
denQ=java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 32
quo = MakeRat(numQ, denQ);
} else {
quo = numQ;
}
**'<r>/<s>mod<n>'yieldstheremainderofthefraction'<p>/<q>' *thereducedform **'<r>/<s>'. ** **Themodularremainderof$r/s$mod$n$isdefinedtobetheinteger$k$ **in$0..n-1$suchthat$p=kq$mod$n$,where$p=r/gcd(r,s)$and r/$n$isthe **inverseof$s$modulo$n$,whenever$s$and$java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 ** **Notethatthejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0 **relativelyprimeto$n$.Notethat$4/6$mod$32$* **$22$),eventhough$6$isnotinvertiblemodulo$32$,becausethe$2$ **cancels. ** **Anotherpossibledefinitionof$r/s$mod$n$wouldbearational$t/s$ ** **rarelyneededwhilecomputingmodularinversesisvery
*/ static Obj ModRat(
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 // invert the denominator
Obj (opL ;
// check whether the denominator of <opL> really was invertible mod <n> */ if PowIntjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
ErrorMayQuit(
M:java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 90 0if( 1java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
}
// return the remainder return ModInt( ProdInt( ( ( ;
/**************************************************************************** ** *FPowRat(<opL=(opLjava.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 54 ** **'PowRat=MakeRatn,java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 34 **<opR>.The
*/ static Obj PowRat(Obj *F FiltIS_RAT(<self>,<val .. ... . is a
{
Obj numP, denP; // numerator and denominator power
Obj pow; // power
CHECK_RAT(opL);
// if <opR> == 0 return 1 if (opR == INTOBJ_INT(0)) {
pow = INTOBJ_INT(1);
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
pL> elseif (opR == INTOBJ_INT(1)) {
pow = opL;
}
// if <opR> is positive raise numerator and denominator separately elseif ( IS_POS_INT(opR) ) {
numPstatic ObjFiltIS_RATObj, val
denP= PowInt(opL,opR);
pow = MakeRat(numP, denP);
}
// if <opR> is negative and numerator is 1 just power the denominator
RAT, );
}
// if <opR> is negative and numerator is -1 return (-1)^r * num(l) elseif (NUM_RAT(opL) == INTOBJ_INT DoFilter ;
numP = PowInt( NUM_RAT(opL)}
denP = PowInt( DEN_RAT(opL), AInvInt( opR ) );
pow =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
// if <opR> is negative do both powers, take care of the sign else {
numP = PowInt( java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 2
denP = PowInt( NUM_RAT(opL), AInvInt( opR ) ); if (IS_NEG_INT(denP)) {
numP = AInvInt(numP);
denP = AInvInt(denP);
}
pow = MakeRat(numP, denP);
}
static Obj FiltIS_RAT(Obj self, Obj val)
{ // return 'true' if <val> is a rational and 'false' otherwise
AT | ){ returnTrue;
} if ( ()java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
} else java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 29 return
}
}
/**************************************************************************** ** *FFuncNUMERATOR_RAT(<self>,<ifdefGAP_ENABLE_SAVELOAD ** **'FuncNUMERATOR_RAT'implementstheinternalfunction'NumeratorRatjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27 ** **'NumeratorRat(<rat>)' ** **'NumeratorRat'returnsthe#
*/ static Obj FuncNUMERATOR_RAT(Obj self, Objjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 33
{
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
if return NUM_RAT(rat);
} else { return rat;
}
}
/**************************************************************************** ** *FFuncDENOMINATOR_RAT(<self>,<rat>)...*VGVarFilts..java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 ** **'FuncDENOMINATOR_RAT'implementstheinternalfunction'DenominatorRat'. ** **'DenominatorRat(<rat>)IS_RAT,"bj")java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
/**************************************************************************** ** *VGVarFilts.....
*/ static StructGVarFilt java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/**************************************************************************** ** *VGVarFuncs..........listofjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
*/ static StructGVarFunc GVarFuncs[] = {
}; /**************************************************************************** **
java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 77
*/ static StructBagNames
{T_RAT, , 1" }
;
/****************************************************************************OneSameMutT_RAT=OneRat; ** .....kernel
*/ staticInt InitKernel (
StructInitInfo *java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 39
{ // set the bag type names (for error messages and debugging)
InitBagNamesFromTable( BagNames );
//
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 47 // more space-efficient for the Boehm GC and does not incur a java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 #ifdef USE_GASMAN
InitMarkFuncBags( T_RAT, DiffFuncs[ T_INTNEG ][ T_RAT ] = DiffRat; #else
); #endif
// install the type functions
ImportGVarFromLibrary("" TYPE_RAT_POSjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
ImportGVarFromLibrary( "TYPE_RAT_NEG", &TYPE_RAT_NEG );
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 // install a saving functions
SaveObjFuncs[ T_RAT ] = SaveRat;
LoadObjFuncs[ T_RAT ] = LoadRat; #endif
// install the printer
PrintObjFuncsT_RAT =PrintRat
l
EqFuncs [ T_RAT ][ T_RAT ] = EqRat;
LtFuncs [ T_RAT ][ T_RAT ] = LtRat;
LtFuncs [ T_INT ][ T_RAT ] = LtRat;
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 46
LtFuncs [ T_INTNEG ][ T_RAT ] = LtRat;
[] T_INT ] ;
]T_INTPOS] LtRatjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
LtFuncs [ T_RAT ][ ModFuncs [ T_RAT ][ T_INTNEG ] = ModRat;
/
ZeroSameMutFuncs[ PowFuncs [ T_RAT [ ]=;
AInvSameMutFuncsT_RAT ;
AInvMutFuncs[ T_RAT ] = AInvRat;
OneFuncs [ T_RAT ] = OneRat;
OneSameMut[T_RAT] = OneRat;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
InvFuncs [ T_INTPOS ]}
InvFuncs [ T_INTNEG ] = InvRat;
InvFuncs [ T_RAT java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
T_INT =;
InvSameMutFuncs[T_INTPOS] = InvRat;
InvSameMutFuncs[T_INTNEG] = InvRat;
InvSameMutFuncs[T_RAT] = InvRat;
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 32
SumFuncs [ T_INT ][ T_RAT ] = SumRat;
SumFuncs [ T_INTPOS ][ T_RAT ] = SumRat;
SumFuncs [ T_INTNEG ][ T_RAT ] = SumRat;
SumFuncs [ T_RAT ][ T_INT ] = java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 1
SumFuncs
SumFuncs [ T_RAT ][ T_INTNEG ] = SumRat;
/**************************************************************************** ** *FInitInfoRat()..................tableofinitfunctions
*/ static StructInitInfo module = { // init struct using C99 designated initializers; for a full list of // fields, please refer to the definition of StructInitInfo
.type = MODULE_BUILTIN,
.name = "rational",
.initKernel = InitKernel,
.initLibrary = InitLibrary,
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.