Home | History | Annotate | Download | only in libdecnumber

Lines Matching refs:context

1 /* Decimal context module for the decNumber C Library.
27 /* Decimal Context module */
30 /* context structures. */
38 #include "decContext.h" /* context and base types */
60 /* context is the context structure to be queried */
63 /* returns context */
67 decContext *decContextClearStatus(decContext *context, uInt mask) {
68 context->status&=~mask;
69 return context;
73 /* decContextDefault -- initialize a context structure */
75 /* context is the structure to be initialized */
81 /* For any other value a valid context is returned, but with */
83 /* returns a context structure with the appropriate initial values. */
85 decContext * decContextDefault(decContext *context, Int kind) {
87 context->digits=9; /* 9 digits */
88 context->emax=DEC_MAX_EMAX; /* 9-digit exponents */
89 context->emin=DEC_MIN_EMIN; /* .. balanced */
90 context->round=DEC_ROUND_HALF_UP; /* 0.5 rises */
91 context->traps=DEC_Errors; /* all but informational */
92 context->status=0; /* cleared */
93 context->clamp=0; /* no clamping */
95 context->extended=0; /* cleared */
102 context->digits=7; /* digits */
103 context->emax=96; /* Emax */
104 context->emin=-95; /* Emin */
105 context->round=DEC_ROUND_HALF_EVEN; /* 0.5 to nearest even */
106 context->traps=0; /* no traps set */
107 context->clamp=1; /* clamp exponents */
109 context->extended=1; /* set */
113 context->digits=16; /* digits */
114 context->emax=384; /* Emax */
115 context->emin=-383; /* Emin */
116 context->round=DEC_ROUND_HALF_EVEN; /* 0.5 to nearest even */
117 context->traps=0; /* no traps set */
118 context->clamp=1; /* clamp exponents */
120 context->extended=1; /* set */
124 context->digits=34; /* digits */
125 context->emax=6144; /* Emax */
126 context->emin=-6143; /* Emin */
127 context->round=DEC_ROUND_HALF_EVEN; /* 0.5 to nearest even */
128 context->traps=0; /* no traps set */
129 context->clamp=1; /* clamp exponents */
131 context->extended=1; /* set */
137 decContextSetStatus(context, DEC_Invalid_operation); /* trap */
140 return context;} /* decContextDefault */
145 /* context is the context structure to be queried */
150 enum rounding decContextGetRounding(decContext *context) {
151 return context->round;
157 /* context is the context structure to be queried */
162 uInt decContextGetStatus(decContext *context) {
163 return context->status;
169 /* context is the context structure to be updated */
174 /* returns context */
178 decContext *decContextRestoreStatus(decContext *context,
180 context->status&=~mask; /* clear the selected bits */
181 context->status|=(mask&newstatus); /* or in the new bits */
182 return context;
188 /* context is the context structure to be queried */
195 uInt decContextSaveStatus(decContext *context, uInt mask) {
196 return context->status&mask;
202 /* context is the context structure to be updated */
204 /* returns context */
208 decContext *decContextSetRounding(decContext *context,
210 context->round=newround;
211 return context;
217 /* context is the context structure to be updated */
219 /* returns the context structure */
224 decContext * decContextSetStatus(decContext *context, uInt status) {
225 context->status|=status;
226 if (status & context->traps) raise(SIGFPE);
227 return context;} /* decContextSetStatus */
232 /* context is the context structure to be updated */
239 /* returns the context structure, unless the string is equal to */
243 decContext * decContextSetStatusFromString(decContext *context,
246 return decContextSetStatus(context, DEC_Conversion_syntax);
248 return decContextSetStatus(context, DEC_Division_by_zero);
250 return decContextSetStatus(context, DEC_Division_impossible);
252 return decContextSetStatus(context, DEC_Division_undefined);
254 return decContextSetStatus(context, DEC_Inexact);
256 return decContextSetStatus(context, DEC_Insufficient_storage);
258 return decContextSetStatus(context, DEC_Invalid_context);
260 return decContextSetStatus(context, DEC_Invalid_operation);
263 return decContextSetStatus(context, DEC_Lost_digits);
266 return decContextSetStatus(context, DEC_Overflow);
268 return decContextSetStatus(context, DEC_Clamped);
270 return decContextSetStatus(context, DEC_Rounded);
272 return decContextSetStatus(context, DEC_Subnormal);
274 return decContextSetStatus(context, DEC_Underflow);
276 return context;
283 /* context is the context structure to be updated */
290 /* returns the context structure, unless the string is equal to */
294 decContext * decContextSetStatusFromStringQuiet(decContext *context,
297 return decContextSetStatusQuiet(context, DEC_Conversion_syntax);
299 return decContextSetStatusQuiet(context, DEC_Division_by_zero);
301 return decContextSetStatusQuiet(context, DEC_Division_impossible);
303 return decContextSetStatusQuiet(context, DEC_Division_undefined);
305 return decContextSetStatusQuiet(context, DEC_Inexact);
307 return decContextSetStatusQuiet(context, DEC_Insufficient_storage);
309 return decContextSetStatusQuiet(context, DEC_Invalid_context);
311 return decContextSetStatusQuiet(context, DEC_Invalid_operation);
314 return decContextSetStatusQuiet(context, DEC_Lost_digits);
317 return decContextSetStatusQuiet(context, DEC_Overflow);
319 return decContextSetStatusQuiet(context, DEC_Clamped);
321 return decContextSetStatusQuiet(context, DEC_Rounded);
323 return decContextSetStatusQuiet(context, DEC_Subnormal);
325 return decContextSetStatusQuiet(context, DEC_Underflow);
327 return context;
334 /* context is the context structure to be updated */
336 /* returns the context structure */
340 decContext * decContextSetStatusQuiet(decContext *context, uInt status) {
341 context->status|=status;
342 return context;} /* decContextSetStatusQuiet */
347 /* context is a context with valid status field */
352 const char *decContextStatusToString(const decContext *context) {
353 Int status=context->status;
427 /* context is the context structure to be updated */
434 uInt decContextTestStatus(decContext *context, uInt mask) {
435 return (context->status&mask)!=0;
441 /* context is the context structure to be updated */
442 /* returns context */
446 decContext *decContextZeroStatus(decContext *context) {
447 context->status=0;
448 return context;