Lines Matching refs:ctx
37 mpd_dflt_traphandler(mpd_context_t *ctx)
39 (void)ctx;
68 mpd_init(mpd_context_t *ctx, mpd_ssize_t prec)
72 mpd_defaultcontext(ctx);
74 if (!mpd_qsetprec(ctx, prec)) {
75 mpd_addstatus_raise(ctx, MPD_Invalid_context);
87 mpd_maxcontext(mpd_context_t *ctx)
89 ctx->prec=MPD_MAX_PREC;
90 ctx->emax=MPD_MAX_EMAX;
91 ctx->emin=MPD_MIN_EMIN;
92 ctx->round=MPD_ROUND_HALF_EVEN;
93 ctx->traps=MPD_Traps;
94 ctx->status=0;
95 ctx->newtrap=0;
96 ctx->clamp=0;
97 ctx->allcr=1;
101 mpd_defaultcontext(mpd_context_t *ctx)
103 ctx->prec=2*MPD_RDIGITS;
104 ctx->emax=MPD_MAX_EMAX;
105 ctx->emin=MPD_MIN_EMIN;
106 ctx->round=MPD_ROUND_HALF_UP;
107 ctx->traps=MPD_Traps;
108 ctx->status=0;
109 ctx->newtrap=0;
110 ctx->clamp=0;
111 ctx->allcr=1;
115 mpd_basiccontext(mpd_context_t *ctx)
117 ctx->prec=9;
118 ctx->emax=MPD_MAX_EMAX;
119 ctx->emin=MPD_MIN_EMIN;
120 ctx->round=MPD_ROUND_HALF_UP;
121 ctx->traps=MPD_Traps|MPD_Clamped;
122 ctx->status=0;
123 ctx->newtrap=0;
124 ctx->clamp=0;
125 ctx->allcr=1;
129 mpd_ieee_context(mpd_context_t *ctx, int bits)
135 ctx->prec = 9 * (bits/32) - 2;
136 ctx->emax = 3 * ((mpd_ssize_t)1<<(bits/16+3));
137 ctx->emin = 1 - ctx->emax;
138 ctx->round=MPD_ROUND_HALF_EVEN;
139 ctx->traps=0;
140 ctx->status=0;
141 ctx->newtrap=0;
142 ctx->clamp=1;
143 ctx->allcr=1;
149 mpd_getprec(const mpd_context_t *ctx)
151 return ctx->prec;
155 mpd_getemax(const mpd_context_t *ctx)
157 return ctx->emax;
161 mpd_getemin(const mpd_context_t *ctx)
163 return ctx->emin;
167 mpd_getround(const mpd_context_t *ctx)
169 return ctx->round;
173 mpd_gettraps(const mpd_context_t *ctx)
175 return ctx->traps;
179 mpd_getstatus(const mpd_context_t *ctx)
181 return ctx->status;
185 mpd_getclamp(const mpd_context_t *ctx)
187 return ctx->clamp;
191 mpd_getcr(const mpd_context_t *ctx)
193 return ctx->allcr;
198 mpd_qsetprec(mpd_context_t *ctx, mpd_ssize_t prec)
203 ctx->prec = prec;
208 mpd_qsetemax(mpd_context_t *ctx, mpd_ssize_t emax)
213 ctx->emax = emax;
218 mpd_qsetemin(mpd_context_t *ctx, mpd_ssize_t emin)
223 ctx->emin = emin;
228 mpd_qsetround(mpd_context_t *ctx, int round)
233 ctx->round = round;
238 mpd_qsettraps(mpd_context_t *ctx, uint32_t flags)
243 ctx->traps = flags;
248 mpd_qsetstatus(mpd_context_t *ctx, uint32_t flags)
253 ctx->status = flags;
258 mpd_qsetclamp(mpd_context_t *ctx, int c)
263 ctx->clamp = c;
268 mpd_qsetcr(mpd_context_t *ctx, int c)
273 ctx->allcr = c;
279 mpd_addstatus_raise(mpd_context_t *ctx, uint32_t flags)
281 ctx->status |= flags;
282 if (flags&ctx->traps) {
283 ctx->newtrap = (flags&ctx->traps);
284 mpd_traphandler(ctx);