14b6a78b7SSimon Schubert /* mpq_swap (U, V) -- Swap U and V.
24b6a78b7SSimon Schubert
34b6a78b7SSimon Schubert Copyright 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
44b6a78b7SSimon Schubert
54b6a78b7SSimon Schubert This file is part of the GNU MP Library.
64b6a78b7SSimon Schubert
74b6a78b7SSimon Schubert The GNU MP Library is free software; you can redistribute it and/or modify
84b6a78b7SSimon Schubert it under the terms of the GNU Lesser General Public License as published by
94b6a78b7SSimon Schubert the Free Software Foundation; either version 3 of the License, or (at your
104b6a78b7SSimon Schubert option) any later version.
114b6a78b7SSimon Schubert
124b6a78b7SSimon Schubert The GNU MP Library is distributed in the hope that it will be useful, but
134b6a78b7SSimon Schubert WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
144b6a78b7SSimon Schubert or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
154b6a78b7SSimon Schubert License for more details.
164b6a78b7SSimon Schubert
174b6a78b7SSimon Schubert You should have received a copy of the GNU Lesser General Public License
184b6a78b7SSimon Schubert along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
194b6a78b7SSimon Schubert
204b6a78b7SSimon Schubert #include "gmp.h"
214b6a78b7SSimon Schubert #include "gmp-impl.h"
224b6a78b7SSimon Schubert
234b6a78b7SSimon Schubert void
mpq_swap(mpq_ptr u,mpq_ptr v)24*d2d4b659SJohn Marino mpq_swap (mpq_ptr u, mpq_ptr v) __GMP_NOTHROW
254b6a78b7SSimon Schubert {
264b6a78b7SSimon Schubert mp_ptr up, vp;
274b6a78b7SSimon Schubert mp_size_t usize, vsize;
284b6a78b7SSimon Schubert mp_size_t ualloc, valloc;
294b6a78b7SSimon Schubert
304b6a78b7SSimon Schubert ualloc = u->_mp_num._mp_alloc;
314b6a78b7SSimon Schubert valloc = v->_mp_num._mp_alloc;
324b6a78b7SSimon Schubert v->_mp_num._mp_alloc = ualloc;
334b6a78b7SSimon Schubert u->_mp_num._mp_alloc = valloc;
344b6a78b7SSimon Schubert
354b6a78b7SSimon Schubert usize = u->_mp_num._mp_size;
364b6a78b7SSimon Schubert vsize = v->_mp_num._mp_size;
374b6a78b7SSimon Schubert v->_mp_num._mp_size = usize;
384b6a78b7SSimon Schubert u->_mp_num._mp_size = vsize;
394b6a78b7SSimon Schubert
404b6a78b7SSimon Schubert up = u->_mp_num._mp_d;
414b6a78b7SSimon Schubert vp = v->_mp_num._mp_d;
424b6a78b7SSimon Schubert v->_mp_num._mp_d = up;
434b6a78b7SSimon Schubert u->_mp_num._mp_d = vp;
444b6a78b7SSimon Schubert
454b6a78b7SSimon Schubert
464b6a78b7SSimon Schubert ualloc = u->_mp_den._mp_alloc;
474b6a78b7SSimon Schubert valloc = v->_mp_den._mp_alloc;
484b6a78b7SSimon Schubert v->_mp_den._mp_alloc = ualloc;
494b6a78b7SSimon Schubert u->_mp_den._mp_alloc = valloc;
504b6a78b7SSimon Schubert
514b6a78b7SSimon Schubert usize = u->_mp_den._mp_size;
524b6a78b7SSimon Schubert vsize = v->_mp_den._mp_size;
534b6a78b7SSimon Schubert v->_mp_den._mp_size = usize;
544b6a78b7SSimon Schubert u->_mp_den._mp_size = vsize;
554b6a78b7SSimon Schubert
564b6a78b7SSimon Schubert up = u->_mp_den._mp_d;
574b6a78b7SSimon Schubert vp = v->_mp_den._mp_d;
584b6a78b7SSimon Schubert v->_mp_den._mp_d = up;
594b6a78b7SSimon Schubert u->_mp_den._mp_d = vp;
604b6a78b7SSimon Schubert }
61